객체는 붕어빵, 클래스는 붕어빵틀
클래스와 구조체의 차이점
구조체 - 서로 다른 자료형을 1개의 자료형으로 묶어 관리하기 위한 용도
클래스 - 다양한 자료형의 데이터를 묶어 관리 뿐만이 아니라 데이터를 처리하는 다양한 기능까지 제공
차이점 : 클래스는 데이터처리기능(메서드) 까지 제공한다.
4가지 구성요소 중 생성자를 제외한 3가지 요소를 클래스의 맴버라고 한다.
클래스명 참조변수명 = new 생성자();
A a = new A();
String name = a.name;
System.out.println(name); //a객체의 name필드를 호출
"지역변수"는 메서드에 포함된 변수를 말한다.
지역변수는 스택메모리에 생성된다. (삭제는 자신이 생성된 메서드가가 종료될 때 삭제된다.)
public static int sum(int a,int b){
//매개변수 a,b를 이용해 데이터처리
}
void -> 리턴타입이 void이면 메서드반환값이 없다라는 뜻이다.
public static void print(){
System.out.println("데이터가 없습니다.");
}
public static void print(int a){
System.out.println(a);
}
오버로딩과 오버라이딩의 차이
- 오버로딩은 메서드 시그니처가 달라 다른 메서드로 구현하여 사용
- 오버라이딩은 메서드 시그니처는 같지만 자식 클래스에서 동일 메서드를 수정하여 사용
기본생성자
class A{
A(){ // 기본생성자
}
}
class B{
int a; // 필드생성;
B(int a){
this.a = a; // 객체 생성시, 바로 필드에 값 대입
}
}
class B{
int a; // 필드생성;
B(int a){
this.a = a; //this.a가 필드 그냥 a가 매개변수입력값이다.
}
}
class B{
int a; // 필드생성;
int b;
B(int a){
this.a = a; //this.a가 필드 그냥 a가 매개변수입력값이다.
}
B(int a, int b){
this(a); //위에서 생성한 생성자 호출 - 내부의 기능도 그대로 가져온다.
this.b = b;
}
}