클래스(객체)
"객체"란 현실 세계에 독립적으로 존재하는 모든 것들을 의미
프로그램상의 필요한 객체를 만들기 위해 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. 반드시 첫줄에 작성해야 함 )
'Java' 카테고리의 다른 글
Java 객체 배열 내용 정리 (0) | 2024.06.24 |
---|---|
자바 객체 배열 (0) | 2024.06.23 |
자바 프로젝트 (0) | 2024.06.20 |
KH 교육과정 (7일차) 자바_ 배열 실습 및 2차원 배열 (0) | 2024.06.19 |
KH 교육원 개발자 교육과정 (6일차) 배열 실습 (0) | 2024.06.18 |