Java

KH 교육원 Java 클래스 9일차

최종군 2024. 6. 21. 21:15

클래스(객체) 

"객체"란 현실 세계에 독립적으로 존재하는 모든 것들을 의미

프로그램상의 필요한 객체를 만들기 위해 class 를 만들어야 된다 

 

 

추상화 과정 :

1) 구현하고자 하는 프로그램에서 필요한 객체를 생각하기

2) 그 객체들이 가지는 공통적인 속성, 기능들을 추출하기

3) 추출한 것을 가지고 구현하고자 한 프로그램의 "실질적인 목적"에 맞춰 불필요한 속성, 기능을 제거하기

4) 최종적으로 추려진 속성들을 어떤 자료형어떤 변수명으로 사용할 것인지 생각하기

 

학생이라는 객체

속성 : (데이터/정보) 이름, 학번, 반,점수,학년,학교 등등

기능(동작/행위) : 밥먹기, 운동하기, 등교하기, 공부하기, 청소하기

 

학생 "성적"관리 프로그램 : 이름, 학번, 반, 점수 공부하기, 시험보기, ...

객체와 속성 그리고 기능을 합쳐 놓았다. 

 

클래스는 "변수부(필드부)"와 "메소드부"와 "생성자부"로 구성되어 있다.

 

 변수(필드/멤버변수) : 객체의 상태(데이터/정보)를 담고 있는 것

 

표현법 : public static int 변수명

접근제한자 -> 예약어 -> 자료형 -> 변수명

 

 

메소드 :

객체의 동작/기능 등의 내용을 담고 있는 것 

표현법 public static void 변수명(매개변수){}

접근제한자 예약어 반환타입 메소드명 (매개변수 정보){}

 

생성자 란 객체를 생성 할 때 사용되는 것 

접근제한자 생성자명(클래스와 동일) 매개변수 정보

생성자를 정의하는 순간, 기본 생성자가 자동으로 만들어지지 않는다.

 

접근 제한자 : 접근할 수 있는 범위를 제한하는 것 

 

접근 제한자 : 접근할 수 있는 범위를 제한하는  것

public : 어디서든 접근 가능 

protected : 같은 패키지 이거나 상속 관계를 통해서 접근이 가능하다 

default : 같은 패키지 내에 있을 때 접근 가능하다 

private : 클래스 내에서만 접근이 가능하다 

 

변수의 스코프 :

 

전역변수 

멤버변수 == 인스턴스 변수 == 필드 

생성시점 : new 연산자(예약어)를 통하여 객체 생성시 

 

클래스변수 == static 변수 

생성시점 : 프로그램 실행과 동시에 무조건 메모리 영역 (static)에 할당 

소멸시점 : 프로그램 종료 시 소멸

 

지역변수 

생성시점 : 지역변수가 속한 특정 구역 {} 실행 시 메모리 영역에 할당 

소멸시점 : 특정 구역 {} 종료 시 소멸

 

정보 은닉 : 데이터에 "직접" 접근하지 못하도록 하는 것 (private 접근제한자 사용 ) 

캡슐화를 통해 데이터에 "간접" 접근하여 사용할 수 있도록 관리함 

 

getter/setter :

 

getter - > 출력 값이 있다

public 반환 타입 getxxx(매개변수자리){}

return;

- 데이터의 값을 조회하는 기능을 수행하는 메소드 

 

 

 

setter ->  반환 값이 없다 

public void setxxx(매개변수 자리){}

 

- 데이터에 어떤 값을 저장하는 기능을 수행하는 메소드

 

오버로딩 조건 : 1.메소드명같아야 된다 .

                          2. 매개변수 정보가 달라야한다(타입, 순서, 갯수)

 

 

 

생성자 :

 

+ 기본 생성자 : 단지 [ 객체 생성 ]만을 목적으로 할 때 사용[ 매개변수 ] 없는 생성자

생략했을 경우 JVM이 자동으로 만들어주기 때문에 객체 생성 가능

 

+ 매개변수 생성자 : 객체 생성과 동시에 전달값들을 매개변수로 받아서

해당 각 필드에 [ 초기화 ]할 목적으로 사용

 

주의사항! 생성자는 반환 타입을 작성하지 않는다 

반환타입 작성 시 메소드로 인식된다.

 

 

중복되는 동일한 내용의 생성자가 존재하는 경우 [ this() ] 생성자를 활용 가능

=> 같은 클래스 내에 생성자에서 또다른 생성자를 호출하고자 할 때 사용

( 주의사항!  this. 반드시 첫줄에 작성해야 함 )