4장 객체지향 프로그래밍

클래스 선언과 객체 생성

클래스이름 변수;

이때 클래스 이름은 변수의 타입, 클래스는 참조타입이므로, 참조 변수, 또는 참조 타입 변수라고 한다.

new 연산자를 이용해서 객체를 생성하고 반환된 주소를 참조 변수에 집어넣음

package chap04;

class Phone {
    String model; // default 값 : null
    int value; // default 값 : 0

    void print() {
        System.out.println(value + "만원짜리 " + model + "스마트폰");
    }
}

public class PhoneDemo {
    public static void main(String[] args) {
        Phone myPhone = new Phone();
        myPhone.model = "갤럭시 S8";
        myPhone.value = 100;
        myPhone.print();

        Phone yourPhone = new Phone();
//        yourPhone.model = "G6";
//        yourPhone.value = 85;
        yourPhone.print();
    }
}

-필드와 지역변수의 차이

  • 클래스의 필드는 선언하면 명시적으로 초기화되고, 초기화 안하면 기본값으로 초기화됨.
  • 필드는 기본값이 있지만, 지역변수는 기본값이 없어, 반드시 초기화를 해야함.
  • 필드는 클래스 전체에서 사용할 수 있지만, 지역변수는 선언된 블록 내부의 선언된 후에서만 사용가능
  • 필드와 달리 지역 변수는 final 로만 지정가능

call by reference

  • call by reference 는 매개변수의 원래 주소에 값을 저장하는 방식이다.
  • 자바에서는 클래스 객체를 인수로 전달한 경우에 call by reference로 처리한다.
    • 메소드에 클래스 객체를 전달하면, 객체가 복사되어 전달되는게 아니라, 참조변수의 값이 복사되어 전달된다.

== 과 equals

  • ==는 연산자.
    모든 타입에 대해 쓸 수 있고, 리턴은 boolean
    모든 기본 타입에 대해 쓸 수 있음(int,char, String 등)
    완전히 같은 애들끼리는 같다고 함(주소가 같아야 해)
  • .equals()는 메소드.
    String타입에 대해서 정의됨. return은 boolean
    내용만 같으면, 주소가 달라도 괜찮!

'TIL > [객체지향 프로그래밍] TIL' 카테고리의 다른 글

TIL (22.05.16)  (0) 2022.05.16
TIL (22.04.28)  (0) 2022.04.29
TIL (22.04.17) 시험범위 정리 3장  (0) 2022.04.17
TIL (22.04.14)  (0) 2022.04.17
TIL (22.04.16) 시험범위 정리 2장  (0) 2022.04.16