[Java] 객체지향2

쓰옹·2022년 11월 19일
0

📙 Java 잡아🤏

목록 보기
8/25
post-thumbnail

생성자 (constructor)

: 클래스를 생성할 때 사용하는 Person()같은 함수
Person personLee = new Person();

  • 생성자 Phone()함수 생성
    • 왼쪽 코드는 디폴트 생성자를 사용하는 경우
      • Phone galaxy/iphone = new Phone();
      • 인스턴스 변수값 따로 초기화
    • 오른쪽 코드는 매개변수가 있는 생성자를 사용하는 경우
      • public Phone(String model, String color, int price) {
        ...
        }
      • 인스턴스 변수 초기화와 동시에 클래스 생성
  • 클래스를 처음 만들 때 멤버 변수, 상수 초기화

오버로딩(overloading)

: 객체지향 프로그램에서 메소드 이름이 같고 매개변수만 다른 경우

  • 기존에 없던 새로운 메소드 정의

  • 조건

    • 동일한 이름의 메소드
    • 매개변수 개수 or 타입이 달라야함
int add(int x, int y, int z) {
        return x+y+z;
    }

long add(int a, int b, int c){    
         return a+b+c;
    }
//컴파일 에러. 개수가 같음. 타입도 같음


int add(int x, int y, int z) {
    int result = x + y + z;
    return result;
}

long add(int a, int b, long c) {
    long result = a + b + c;
    return result;
}

int add(int a, int b) {
    int result = a + b;
    return result;
}
// 오버로딩 조건에 부합. 메소드 이름은 같지만 매개변수의 개수가 다름

접근제어자(access modifier)

: 클래스 내부의 변수나 메소드, 생성자에 대한 접근 권한을 지정할 수 있는 예약어

private : 같은 클래스 내에서만 접근 가능
default(nothing) : 같은 패키지 내에서만 접근 가능
protected : 같은 패키지 내부 , 상속 관계 클래스에서 접근이 가능
public : 접근 제한이 전혀 없음

  • 접근 범위 정리
    (좁음)                                     (넓음)
    private → default → protected → public
  • why 접근제어자?
    • 객체지향 프로그래밍에선 객체들간의 관계에 따라서 접근 할 수 있는 것과 아닌 것, 권한을 구분할 필요가 생긴다.
    • 클래스 내부에 선언된 데이터의 부적절한 사용으로부터 보호하고
    • 캡슐화가 가능할 수 있도록 돕는 도구이다.
        - 캡슐화(encapsulation) : 클래스 내부 변수와 메소드를 하나로 묶고 일부는 은닉한다.

getter, setter

  • getter: 값을 얻는 get() 메소드
    • 변수 값을 가져옴
  • setter: 값을 얻는 set() 메소드
    • 새로운 변수를 멤버변수에 새로 지정하거나 바꿈
public class Student {
	int studentID;
    private String studentName;
    int grade;
    String address;
    
    //private 변수인 studentName의 값을 가져오는 메소드
    public String getStudentName() {
    	return studentName;
    }
    
    //private 변수인 studentName에 접근해 값을 지정하는 메소드
    public void setStudentName(String studentName) {
    	this.studentName = student2Name;
    }
}





🧐 reference

박은종, 『Do it! 자바 프로그래밍 입문』, 이지퍼블리싱(주)

profile
기록하자기록해!

0개의 댓글