[Java] Concept of Class

게맛살맛게·2021년 12월 6일
0

Java

목록 보기
9/18

Java Class

클래스의 구조

필드 Field

멤버 변수라고도 함
객체의 데이터, 상태를 저장하는 변수
기본타입 또는 참조타입으로 정의

일반적으로 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막음
객체의 외부에서 객체 내부 데이터를 마음대로 읽고 쓸 경우 무결성 보장에 어려움
메소드를 통한 접근을 하게 되면 객체의 데이터를 변경할 경우 무결성 체크 가능

Getter, Setter

클래스를 정의 할 때 필드는 private로 하여 객체 내부의 정보를 보호(정보은닉)
필드에 대한 SetterGetter를 두어 객체의 값을 변경하고 참조하는 것이 좋다.

  • 외부에서 읽기만 가능케 하려면 Getter만 생성
  • 외부에서 쓰기만 가능케 하려면 Setter만 생성
  • Getter와 Setter가 없으면 객체 내부 전용 변수
  • Getter / Setter 자동 생성

DTO (Data Transer Object)

  • 기본 생성자
  • 필드는 은닉(private)
  • Getter/Setter 설정 (우회접근)
  • 내부 로직은 넣지 않는다

접근자

객체의 필드와 메서드에 접근을 제한하기 위해 사용
정보 은닉을 위한 방법(캡슐화)
정보 접근 수중에 따라 public, protected, default, private 네 가지가 있음

  • 접근자의 종류와 접근 범위 public > protected > default > private
    private 변수들은 외부 접근 불가
    Getter/Setter 설정

메서드

객체의 기능 또는 행동을 정의

public int getSum (int i, int j) {
	int result = i + j;
	return result;
}
  • 호출 방법

매개변수 parameter

메서드를 선언할 때 괄호 안에 표현 된 Input 값을 나타내는 변수
메서드 호출에서 들어가는 구체적인 값은 인자argument라고 함

반환타입 return type

메서드는 0개 혹은 1개의 값을 Output으로 반환

  • 반환 값이 없을때 : void
  • 반환 값이 있을때 : int, boolean, String, Object, ...
    반환 되는 값과 메서드 선언에서 정의된 반환 타입이 일치 해야함

메서드 이름

자바의 식별자 규칙에 맞게 생성 할 수 있음
관례에 따라 소문자로 작성, 두단어가 조합될 경우 두번째 시작 문자는 대문자로 작성 (camelcase)
기능을 알기 쉽게 작성하는 것이 좋다.

가변 인수

매소드의 매개 변수의 개수를 알 수 없을 때 사용

  • 매개변수를 배열로 선언
    double sum (double[] valuse) {}
  • 매개변수를 ...를 이용하여 선언 (가변인수)
    double sum (double ... valuse) {}
    ※ 가변인수를 사용할 때 고정인수, 가변인수 순서로 사용해야함

생성자 (Constructor)

new 연산자와 같이 사용되어 클래스로부터 객체를 생성할 때 호출되고 객체의 초기화를 담당
class -> Instance 생성
생성자를 실행 시키지 않고 클래스로 부터 객체를 만들 수 없다
생성자가 성공적으로 실행되면 JVM의 Heap 영역에 객체가 생성되고 객체의 참조값이 변수에 저장

  • 생성자의 정의
    • 생성자의 이름은 클래스와 같아야한다
    • 생성자의 리턴 값은 없음
public class Goods {
	String name; int price;
    
	public Goods() {	// 기본 생성자 (instance 생성 만 수행)
		// 초기화 코드
	}
	public Goods( String name, int price ) {
		// 초기화 코드
		this.name = name; this.price = price;
	}
}
  • 기본 생성자 : 매개 변수가 없는 생성자

    • 클래스에 생성자가 하나도 없으면 컴파일러가 기본으로 생성자를 추가
    • 생성자는 필요에 따라 여러개 작성 가능

this Keyword

메서드 호출을 받는 객체를 의미 -> 현재 사용중인 객체 그 자체를 의미
this()는 클래스의 한 생성자에서 다른 생성자를 호출할 때 사용

super : 상위(부모) Class를 지칭
this : 현재(자식) Class를 지칭

Method Overloading

하나의 클래스에 같은 이름의 메서드가 여러 개 존재 가능
각 메서드들은 매개변수 타입, 개수, 순서method signature가 다른 형태로 구별

	void draw() { ... }
	void draw(boolean bDraw) { ... }	// 같은 이름 다른 매개변수의 overloading 된 함수
profile
IT 기술블로그

0개의 댓글