JAVA
JAVA 코드를 통해 생성자 이해하기
yn98
2024. 6. 22. 22:08
class Student { //학생 이라는 객체.
String name;
int score;
char grade; // 이름, 점수, 등급
/*생성자 입맛대로 만들어보기
Student(외부에서 어떤 값을 가져올지) {
멤버변수 = 외부에서 받아온 값으로 초기화;
}
*/
// ↑ 멤버변수 초기화
// 생성자 주요특징★★개발자가 생성자 코드를 작성하면, 더 이상 기본 생성자는 제공하지 않는다.
Student(String name, int score, char grade){
this.name = name;
this.score = score;
this.grade = grade;
//★this란 자기자신 객체를 의미한다.
/* this.name = name;
내.이름 = 외부에서 받아온 name값;
*/
}
void study() {
this.score += 50;
System.out.println("분발하세요");
if(this.score>100) { //score가 100보다 크면 100으로 저장.
this.score=100;
}
}
void printInfo() {
System.out.println("저는 " + this.name + "입니다. ");
System.out.println(this.score+ "점이고 " + this.grade+ "등급입니다. ");
}
}
public class ConstEx {
public static void main(String[] args) {
int num =30; //선언, 정의 >> 데이터를 저장
// 변수 3요소
// : 메모리의 주소, 그 주소에 대한 이름, 메모리의 크기
// != 데이터 값 xxxx
// (변수공간은 옷장.. 옷 없어도 구매가능)
//Student stu = new Student();//메모리에 Student 만큼의 공간을 선언할거야 = new 연산자.. ////JAVA가 당연히 필요한거니까 기본제공해줌 ! == 생성자
// 객체를 만들 수 있는 유일한 방법
// == 객체화(인스턴스화)
// 클래스 객체 = new 생성자()
// 변수타입 변수명 = 메모리 공간
//stu.name = "예나";
//stu.score = 50;
//stu.grade = 'C';
//int data;
//System.out.println(data); // 왜 에러가 날까 ?
// 데이터 값을 변수 3요소(필수)가 아니기 때문에
// 선언할 때에 필요는 없지만
// 출력할수는 없다.
Student data = new Student("예나", 50, 'C');
// 기본(디폴트) 생성자는 기본제공되다가,
// 사용자가 생성자를 새로 정의하면 더 이상 기본제공 xxxx
System.out.println(data.name);
// 생성자는 객체를 생성하는 역할
// 1. 객체화를 담당
// 2. "멤버변수 초기화" ★
}
}