캡슐화, 정보은닉
•
알약처럼 정보를 안보이게 숨긴다
•
접근제어자
◦
클래스 접근제어자 : public, [default]
◦
메소드 접근제어자 : public, protected, [default] , private
•
모든 변수에는 private를 하자
•
getter, setter를 활용해 내부의 데이터를 넣고 가져올수 있다
getter, setter, toString(), Constructor 자동생성 단축기
윈도우 : Alt + Shift + S
맥 : Command + Option + S
하나의 파일에서 class를 선언할때 public은 하나만 선언이 가능한 이유
→ 클래스 앞에 public이 들어가게 되면 그 클래스의 이름은 해당 파일의 이름과 동일해야 한다
상속
•
상위클래스의 필드와 메서드를 하위클래스가 받아서 재사용하거나 확장한다
•
is a kind of의 관계를 만족해야 한다
ex) 조류 is a kind of 동물 → 조류는 동물의 한 분류이다
추상화
•
구체적인 것을 분해해서 관심영역에 있는 특성만 가지고 재조합하는 것
•
여러 객체에 공통적으로 사용되는 내용을 뽑아내는것
다형성
•
형태는 같지만 다른 기능을 하는것
•
Overriding
◦
같은 메서드 이름, 같은 인자 목록으로 상위 클래스를 재정의한다
•
Overloading
◦
같은 메서드 이름, 다른 인자목록으로 다수의 메서드를 중복 정의
public class Animal {
public String name;
public void showName() {
System.out.println(name);
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
public class Bird extends Animal {
public String color;
public void showColor() {
System.out.println(color);
}
//오버라이딩 - 재정의 : 상위클래스의 메서드와 같은 메서드이름, 같은 인자 리스트
public void showName() {
System.out.println("내 이름은 " + name + "이야!");
}
//오버로딩 - 중복정의 : 상위클래스의 메서드와 같은 메서드이름, 다른 인자 리스트
public void showName(Stirng yourName) {
System.out.println("너 이름은 " + yourName + "이니?");
}
Java
복사