인스턴스 복습
package test5_1;
//설계만 해놓은 클래스
public class Score {
String name; //이름
int kor, math, eng; //점수
//멤버 변수에 저장된 데이터값을 출력해주는 메서드
void show() {
System.out.println("이름 = " + name);
System.out.println("국어점수 = " + kor);
System.out.println("수학점수 = " + math);
System.out.println("영어점수 = " + eng);
}
}
package test5_1;
public class Score_Main {
public static void main(String[] args) {
//객체(인스턴스) 생성 : 클래스 내의 멤버들을 실제로 Heap 영역에 배치시키는 것
//기본형 : 자료형 변수명 = 값;
//ex) int a = 10;
Score s = new Score();
System.out.println("이름 = " + s.name);
System.out.println("국어 = " + s.kor);
System.out.println("수학 = " + s.math);
System.out.println("영어 = " + s.eng);
}
}
메서드 오버로드 : 메서드 중복. 메서드의 이름은 같고 매개변수의 자료형의 개수나 다른 여러 개의 함수를 작성해 놓고 사용할 수 있음
package test5_1;
public class Score {
String name; //이름
int kor, math, eng; //점수
//국어 점수만 출력하는 메서드 만들기
void sum(int kor) {
System.out.println("국어 점수 = " + kor);
}
//국어 + 수학 점수 출력하는 메서드 만들기
void sum(int kor, int math) {
System.out.println("국어+수학 점수 = " + (kor + math));
}
//국어 + 수학+ 영어 점수를 출력하는 메서드 만들기
void sum(int kor, int math, int eng) {
System.out.println("국어+수학+영어 점수 = " + (kor + math + eng));
}
//멤버 변수에 저장된 데이터값을 출력해주는 메서드
void show() {
System.out.println("이름 = " + name);
System.out.println("국어점수 = " + kor);
System.out.println("수학점수 = " + math);
System.out.println("영어점수 = " + eng);
}
}
package test5_1;
public class Score_Main {
public static void main(String[] args) {
//객체(인스턴스) 생성 : 클래스 내의 멤버들을 실제로 Heap 영역에 배치시키는 것
//기본형 : 자료형 변수명 = 값;
//ex) int a = 10;
Score s = new Score();
System.out.println("s = " + s);
System.out.println("이름 = " + s.name);
System.out.println("국어 = " + s.kor);
System.out.println("수학 = " + s.math);
System.out.println("영어 = " + s.eng);
System.out.println("---------------");
//멤버 변수에 데이터값 넣기
s.name = "홀붕이";
s.kor = 20;
s.math = 80;
s.eng = 100;
s.show();
System.out.println("---------------");
s.sum(70);
System.out.println("---------------");
s.sum(30,70);
System.out.println("---------------");
s.sum(80,90,100);
System.out.println("---------------");
}
}
생성자(constructor)
변수를 선언하면 반드시 사용할 데이터값을 초기화시키지 않으면 컴파일되지 않음.
메서드의 종류 : 일반 메서드, 특수한 메서드
-일반 메서드 : 메서드를 정의하고 필요시 정의된 메서드를 호출해서 사용함.
-특수한 메서드 : 메시드를 호출하지 않아도 자동으로 호출이 되어서 사용됨. → 생성자(메서드)라고 함.
생성자(메서드) : 객체를 생성함과 동시에 자동으로 호출되어 사용되는 메서드
객체를 생성함과 동시에 멤버 변수에 데이터값을 초기화시키는 기능을 함.
객체를 생성할 때 한 번만 호출되어 사용됨.
생성자(메서드)를 정의하지 않아도 컴파일러가 기본생성자(디폴트생성자)를 추가해서 자동으로 호출함.
객체를 생성함과 동시에 멤버 변수에 데이터값을 초기화 시키는 기능과 반드시 인자값을 넘겨줘야하는 객체가 생성되는 강제성이 있기 때문
정의할 때 규칙
메서드의 이름은 반드시 클래스 이름과 같아야함.
반환값 자료형과 return(반환값)이 없음.
작성 내용은 { } 내에서 멤버 변수에 데이터값을 초기화시키는 내용만 작성
메서드 오버로드를 이용해서 여러개의 초기화시키는 방법의 메서드를 만들어 놓고 사용
생성자 정의 형식
기본 생성자(default constructor) : 객체 생성시 멤버 변수에 사용자가 직접 데이터값을 넣어줄 수 없는 형태(매개 변수가없음)
일반 생성자 : 객체 생성시에 멤버 변수에 사용자가 직접 데이터를 넣어줄 수 있는 형태(매개변수가 있음)
'KDT > Java' 카테고리의 다른 글
231204 Java (0) | 2023.12.04 |
---|---|
231130 Java (0) | 2023.11.30 |
231127 Java (0) | 2023.11.27 |
231123 Java (0) | 2023.11.23 |
231122 Java (0) | 2023.11.22 |