본문 바로가기
JAVA

221220_Interface

by 경 훈 2022. 12. 20.

객체를 만드는이유

1. 데이터를 묶을려고

2. 클래스 사용 (필드와 메소드 사용)

 

메소드의 종류

일반 메소드

public 타입 메소드명() {

     //body == 기능

}

추상 메소드 : {} 즉 body 가 없다. 기능이 없다.

public 타입 메소드명(); //

사용자가 알아서 기능을 추가시켜 사용하라는 뜻

 

 

클래스의 종류

일반클래스 : 사용자가 만든 클래스

public class 클래스명{}

추상클래스 : 추상메소드가 1개이상 존재

인터페이스 : 추상메소드로만 구성

 

클래스가 클래스를 상속 -> extends

클래스가 인터페이스를 상속 -> implements

 

인터페이스를 상속받으면 반드시 재정의가 필요하다.

오버라이딩

 

package day12_MenuTest;

public class DTO {
	String name;
	int age;
	String phone;
	public DTO() {}
	public DTO(String name, int age, String phone) {
		super();
		this.name = name;
		this.age = age;
		this.phone = phone;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
}

 

package day12_MenuTest;

import java.util.Scanner;

public class Input {
	public String munja(String str,Scanner sc) {
		System.out.println(str+"를 입력");
		return sc.next();
	}
	public int number(String str,Scanner sc) {
		System.out.println(str+"를 입력");
		return sc.nextInt();
	}
}

 

package day12_MenuTest;

import java.util.ArrayList;
import java.util.Scanner;

public class DAO { //터미널
	ArrayList<DTO> list = new ArrayList<DTO>();
	Input in = new Input();
	Scanner sc = new Scanner(System.in);
	public void insert(Scanner sc) { //자료입력기능
		DTO dto = new DTO();
		dto.setName(in.munja("이름",sc));
		dto.setAge(in.number("나이", sc));
		dto.setPhone(in.munja("전화번호", sc));
		list.add(dto);
	}
	public void out() { //자료출력기능
		System.out.println("현재 객체의 수는 "+list.size()+"개");
		System.out.println("이름\t나이\t전화번호");
		System.out.println("====================");
		for(DTO a:list) {
			System.out.println(a.getName()+"\t"+a.getAge()+"\t"+a.getPhone());
		}
	}
	public void delete(Scanner sc) { //자료삭제기능
		int po=-1;
		System.out.print("삭제할 이름을 입력하세요");
		String dname=sc.next();
		for(int i=0;i<list.size();i++) {
			if(list.get(i).getName().equals(dname)) {
				po=i;//삭제할 이름위치
				break;
			}
		}
		if(po==-1) {
			System.out.println(dname+"은 없는 이름입니다");
		}
		else //삭제할 이름을 찾았다
		{
			System.out.println("이름 : "+list.get(po).getName());
			System.out.println("나이 : "+list.get(po).getAge());
			System.out.println("전화 : "+list.get(po).getPhone());
			System.out.println("위의 자료를 삭제할까요?");
			String qq = sc.next();
			if(qq.equals("Y") || qq.equals("y") || qq.equals("ㅛ")) {
				list.remove(po);
				System.out.println("삭제했습니다");
			}
			else {
				System.out.println("삭제보류");
			}
		}
	}
	public void search(Scanner sc) { //자료찾기기능
		int po=-1;
		System.out.print("검색할 이름을 입력하세요");
		String sname=sc.next();
		for(int i=0;i<list.size();i++) {
			if(list.get(i).getName().equals(sname)) {
				po=i; //검색할 이름이 존재위치 po
				break;
			}
		}
		if(po==-1) {
			System.out.println(sname+"은 없는 이름입니다");
		}
		else
		{	
			System.out.println(sname+"은 "+(po+1)+"번째 위치");
			System.out.println("이름 : "+list.get(po).getName());
			System.out.println("나이 : "+list.get(po).getAge());
			System.out.println("전화 : "+list.get(po).getPhone());
			System.out.println("검색 결과입니다.");
		}
	}
}

 

package day12_MenuTest;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		DAO dao = new DAO();
		while(true) {
			System.out.println("1번:자료입력");
			System.out.println("2번:자료출력");
			System.out.println("3번:자료삭제");
			System.out.println("4번:자료검색");
			System.out.println("0번:종료");
			System.out.println("작업 번호를 입력");
			int n = sc.nextInt();
			switch (n) {
			case 1:dao.insert(sc);break;
			case 2:dao.out();break;
			case 3:dao.delete(sc);break;
			case 4:dao.search(sc);break;
			case 0:System.exit(0);;break;
			}
		}
	}
}

 

package day12_Interface;

public interface Soldier {
	public void army1();
	public void navy1();
	public void airforce1();
	public void dolphin1();
}

 

package day12_Interface;

public class Soldier_Class implements Soldier{

	@Override
	public void army1() {
		System.out.println("우리는 대한민국 육군이다");
	}
	@Override
	public void navy1() {
		System.out.println("우리는 대한민국 해군이다");
	}
	@Override
	public void airforce1() {
		System.out.println("우리는 대한민국 공군이다");
	}
	@Override
	public void dolphin1() {
		System.out.println("우리는 대한민국 해병대이다");	
	}
}

 

package day12_Interface;

public class Main_Soldier {

	public static void main(String[] args) {
		Soldier_Class kr = new Soldier_Class();
		kr.army1();
		kr.navy1();
		kr.airforce1();
		kr.dolphin1();
	}
}

package day12_MenuTest;

import java.text.DecimalFormat;

public class SampleTest {

	public static void main(String[] args) {
		//두수 입력받아 합을 구하는
		String str="홍길동099088078";//이름,국어,영어,수학
		String name = str.substring(0, 3);
		int kor = Integer.parseInt(str.substring(3, 6));
		int eng = Integer.parseInt(str.substring(6, 9));
		int math = Integer.parseInt(str.substring(9, 12));
		int tot = kor+eng+math;
		double avg=(double)tot/3;
		DecimalFormat df = new DecimalFormat("#,##0.00");
		System.out.println("이름 :"+name);
		System.out.println("국어 :"+kor);
		System.out.println("영어 :"+eng);
		System.out.println("수학 :"+math);
		System.out.println("총합 :"+tot);
		System.out.println("평균 :"+df.format(avg));
	}
}

'JAVA' 카테고리의 다른 글

221222_상속  (0) 2022.12.22
221221_Interface,상속  (0) 2022.12.21
221219_Class  (0) 2022.12.19
221216_Class  (0) 2022.12.16
221215_Class  (0) 2022.12.15

댓글