[Java] 10.1. 클래스, 객체, 인스턴스

김주희's avatar
Feb 26, 2025
[Java] 10.1. 클래스, 객체, 인스턴스
클래스는 상태와 행위를 가진다.
new를 통해 static이 붙지 않은 모든 것들을 메모리의 heap 영역으로 올린다.(인스턴스가 된다.)
heap에 있는 값을 찾을 때는 참조변수.이름으로 찾는다. (여기서 ‘.’은 객체 연결 연산자이다.)
상태 무조건 변경X
private + 상태
private 붙지 않는 상태 없음
 

1. Circle 클래스

package ex04; public class Circle { public int radius; public String color; public double getArea() { return 3.14 * radius * radius; } }
package ex04; public class CircleTest { public static void main(String[] args) { Circle obj = new Circle(); obj = new Circle(); obj.radius = 100; obj.color = "blue"; double area = obj.getArea(); System.out.println("원의 면적= " + area); } }
notion image
 
클래스가 2개로 나뉘었을 때 main이 있는 쪽을 기준으로 하나의 클래스에 작성
public 클래스와 소스 파일 이름
단, 원칙적으로 하나의 소스 파일에는 하나의 public 클래스만 있어야 하고, public 클래스의 이름은 소스 파일 이름과 동일해야 한다. 하지만 public 클래스가 아니라면 다른 클래스도 동일한 소스 파일에 추가할 수 있다.
package ex04; class Circle { public int radius; public String color; public double getArea() { return 3.14 * radius * radius; } } public class CircleTest { public static void main(String[] args) { Circle obj = new Circle(); obj.radius = 100; obj.color = "blue"; double area = obj.getArea(); System.out.println("원의 면적= " + area); } }
 

2. Television 클래스 예제 (Television → Tv)

myTv와 yourTv라는 두 객체에 들어있는 변수의 내용은 서로 다르다.
package ex04; public class Tv { int channel; int volume; boolean onOff; public static void main(String[] args) { Tv myTv = new Tv(); myTv.channel = 7; myTv.volume = 10; myTv.onOff = true; Tv yourTv = new Tv(); yourTv.channel = 9; yourTv.volume = 12; yourTv.onOff = true; System.out.println("나의 텔레비전의 채널은 " + myTv.channel + "이고 볼륨은 " + myTv.volume + "입니다."); System.out.println("너의 텔레비전의 채널은 " + yourTv.channel + "이고 볼륨은 " + yourTv.volume + "입니다."); } }
notion image
 
Share article

jay0628