Day 15

ChangWoo·2023년 4월 19일
1

자바의 정석

목록 보기
15/71

ch 6-5 한 파일에 여러 클래스 작성하기

하나의 소스파일에 여러 클래스 작성 (올바른 작성 예)


public class가 있다면, 무조건 소스파일명은 이와 같아야 한다.
public class가 하나도 없다면, 여러 클래스명 중 아무거나 가능하다.

  • 원래 하나의 소스파일에는 하나의 클래스만 작성하는 것이 바람직하다.

하나의 소스파일에 여러 클래스 작성 (잘못된 작성 예)


public class는 무조건 하나여야 한다.
public class명과 소스파일명이 불일치하면 안된다.
Java는 대소문자 구분하므로 public class명과 소스파일명 완전 똑같게 해야 한다.

ch 6-6,7 객체의 생성과 사용

객체의 생성과 사용

1. 객체의 생성
클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언
변수명 = new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
Ex) Tv t; // Tv클래스 타입의 참조변수 t를 선언
t = new Tv(); // Tv인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 t에 저장

2. 객체의 사용 (변수, 메서드 사용)
t.channel = 7; // Tv인스턴스의 멤버변수 channel의 값을 7로 한다.
t.channelDown(); // Tv인스턴스의 메서드 channelDown()을 호출한다.
System.out.println("현재 채널은 " + t.channel + " 입니다.");

  • 클래스 작성(=설계도 작성) → 객체 생성(=제품 생성) → 객체 사용(=제품 사용)
  • 객체(=제품)를 사용하기 위해서는 참조변수(=리모컨)를 통해서 해야 한다.

Ex) Tv t; // Tv클래스 타입의 참조변수 t를 선언
t = new Tv(); // Tv인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 t에 저장
t.channel = 7; // Tv인스턴스의 멤버변수 channel의 값을 7로 한다. (=변수사용)
t.channelDown(); // Tv인스턴스의 메서드 channelDown()을 호출한다. (=메서드호출)
System.out.println("현재 채널은 " + t.channel + " 입니다."); // 변경된 t.channel이 표시된다.
참조변수의 타입과 생성하려는 객체의 타입은 일치해야 한다.
객체생성에 있어서 참조변수는 필수적이다.
객체는 클래스를 토대로 변수 + 메서드로 만들어진다.

객체의 생성과 사용 - 예제

Tv t1 = new Tv();
Tv t2 = new Tv();
t1.channel = 7;
System.out.println("t1의 channel값은 " + t1.channel + "입니다."); // 7
System.out.println("t2의 channel값은 " + t2.channel + "입니다."); // 0

  • 두 개가 다른 변수이기 때문에 다른 한 쪽을 바꾼다고 해서 똑같이 변경되지 않는다.
  • 객체마다 별도의 저장공간이 생긴다.

Ex

  • (a) 하나의 인스턴스를 여러 개의 참조변수가 가리키는 경우(가능)
  • (b) 여러 인스턴스를 하나의 참조변수가 가리키는 경우(불가능)
profile
한 걸음 한 걸음 나아가는 개발자

0개의 댓글