KDT/Java

231129 Java

001cloudid 2023. 11. 29. 17:49
728x90

인스턴스 복습

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);

 

}

 

}

그림 1. Score_Main 출력 시. 인스턴스

 

메서드 오버로드 : 메서드 중복. 메서드의 이름은 같고 매개변수의 자료형의 개수나 다른 여러 개의 함수를 작성해 놓고 사용할 수 있음

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("---------------");

 

}

 

}

그림 2. Score_Main 출력 시. 오버로드

 

생성자(constructor)

변수를 선언하면 반드시 사용할 데이터값을 초기화시키지 않으면 컴파일되지 않음.

메서드의 종류 : 일반 메서드, 특수한 메서드

-일반 메서드 : 메서드를 정의하고 필요시 정의된 메서드를 호출해서 사용함.

-특수한 메서드 : 메시드를 호출하지 않아도 자동으로 호출이 되어서 사용됨. → 생성자(메서드)라고 함.

 

생성자(메서드) : 객체를 생성함과 동시에 자동으로 호출되어 사용되는 메서드

객체를 생성함과 동시에 멤버 변수에 데이터값을 초기화시키는 기능을 함.

객체를 생성할 때 한 번만 호출되어 사용됨.

생성자(메서드)를 정의하지 않아도 컴파일러가 기본생성자(디폴트생성자)를 추가해서 자동으로 호출함.

 

객체를 생성함과 동시에 멤버 변수에 데이터값을 초기화 시키는 기능과 반드시 인자값을 넘겨줘야하는 객체가 생성되는 강제성이 있기 때문

 

정의할 때 규칙

메서드의 이름은 반드시 클래스 이름과 같아야함.

반환값 자료형과 return(반환값)이 없음.

작성 내용은 { } 내에서 멤버 변수에 데이터값을 초기화시키는 내용만 작성

메서드 오버로드를 이용해서 여러개의 초기화시키는 방법의 메서드를 만들어 놓고 사용

 

생성자 정의 형식

기본 생성자(default constructor) : 객체 생성시 멤버 변수에 사용자가 직접 데이터값을 넣어줄 수 없는 형태(매개 변수가없음)

일반 생성자 : 객체 생성시에 멤버 변수에 사용자가 직접 데이터를 넣어줄 수 있는 형태(매개변수가 있음)

 

 

 

728x90

'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