package class06;
public class StudentClass01 {
public static void main(String[] args) {
// 2023-07-25 클래스(1)
// 객체 : 실제 존재하는 사물이나 개념을 말한다. 무형인 시간이나 감정 등 모두를 말한다.
// 클래스는 설계도로 비유한다. 클래스가 없으면 객체생성이 불가능하다. / 클래스 : 붕어빵 기계, 객체 : 붕어빵이다.
// 객체 모델링 : 현실 세계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링이라고 한다. 객체의 필드와 메소드로 정의하는 과정
// 참조변수 this는 자기 자신 객체를 의미한다. 생성자 this()와는 다르다. 생성자 this는 중복제거를 위해 호출할 때 사용한다.
// 객체 생성
Student student = new Student();
Student student2 = new Student(1, "가","나"); // 값 초기화 가능, 오버로드한 것이 우선으로 실행된다.
// 접근하여 필드 값주기
student.str = "devnabi"; // 변경
student.str2 = "Kitri"; // 초기화
// 필드 값 읽기
System.out.println(student.str);
System.out.println(student.str2);
} // main의 끝
}
// class 써보기
class Student{
// 필드 선언
int a = 10;
int b; // 인스턴스 변수 기본값 : 0
String str = "abc";
String str2; // 참조형 변수 기본값 : null
// 기본생성자 : 매개변수를 주지 않는다. 다른 생성자가 없다면 컴파일러가 기본생성자를 만들어준다.
// Student(){}
// 생성자 : 매개변수가 있는 생성자를 사용하고 싶다면 기본생성자를 수동으로 써줘야한다. / 변수 초기화를 위해서 쓴다.
Student(int a, int b){
this.a = a;
this.b = b;
}
// 중복되는 코드
// Student(String str, String str2){
// this.str = str;
// this.str2 = str2;
// }
// 다른 생성자에서도 쓰는 코드 중복을 막기 위해 생성자끼리 호출하는 방법이 있다. this생성자는 매개변수가 많은 생성자를 따라간다.
Student(){
this(1, "a", "b");
}
Student(int a, String str, String str2){
this.a = a;
this.str = str;
this.str2 = str2;
}
}
Comments