Backend
home
📚

Java 기본 개념 압축 정리 - 2

생성 일시
2025/01/22 10:39
태그
Java
게시일
2025/01/22
최종 편집 일시
2025/02/09 13:26

객체의 생성과 사용

클래스명 변수명;
클래스의 객체를 참조하기 위한 참조변수 선언
변수명 = new 클래스명();
클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
Tv t; ⇒ Tv클래스 타입의 참조변수 t를 선언
t = new Tv() ⇒ Tv 인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 t에 저장
예제
// TV 클래스 public class Tv { // Tv의 속성 (멤버변수) String color; // 색상 boolean power; // 전원상태 (on / off) int channel; // 채널 void power() { power = !power; } // TV를 켜거나 끄는 기능을 하는 메서드 void channelUp() { ++channel; } // TV의 채널을 높이는 기능을 하는 메서드 void channelDown() { --channel; } // TV의 채널을 낮추는 기능을 하는 메서드 } public class ex6 { public static void main(String[] args) { Tv t; // TV 인스턴스를 참조하기 위한 변수 t 선언 t = new Tv(); // Tv 인스턴스 생성 t.channel = 7; // Tv 인스턴스의 멤버변수 channel의 값을 7로 함 t.channelDown(); // Tv 인스턴스의 메서드 channelDown() 을 호출 System.out.println("현재 채널은 " + t.channel + " 입니다."); } }
Java
복사
객체의 생성과 사용 예제
public class Ex6_2 { public static void main(String[] args) { Tv t1 = new Tv(); Tv t2 = new Tv(); System.out.println("t1의 channel값은 " + t1.channel + "입니다."); System.out.println("t2의 channel값은 " + t2.channel + "입니다."); t1.channel = 7; System.out.println("t1의 channel값을 7로 변경하였습니다."); System.out.println("t1의 channel값은 " + t1.channel + "입니다."); System.out.println("t2의 channel값은 " + t2.channel + "입니다."); } }
Java
복사

오버로딩

정의: 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 ‘메서드 오버로딩(method overloading) 또는 간단히 ‘오버로딩(overloading)’ 이라 한다.
조건:
메서드 이름이 같아야 한다.
매개변수의 개수 또는 타입이 달라야 한다.
오버로딩 예제
class Calculator { int add(int a, int b) { System.out.print("int add(int a, int b) - "); return a + b; } long add(int a, long b) { System.out.print("long add(int a, long b) -"); return a + b; } long add(long a, int b) { System.out.print("long add(long a, int b) - "); return a + b; } long add(long a, long b) { System.out.print("long add(long a, long b) - "); return a + b; } int add(int[] a) { System.out.print("int add(int[] a) - "); int result = 0; for (int i = 0; i < a.length; i++) { result += a[i]; } return result; } } public class Ex6_10 { public static void main(String[] args) { Calculator cal = new Calculator(); System.out.println("cal.add(3, 3) 결과:" + cal.add(3, 3)); System.out.println("cal.add(3L, 3) 결과: " + cal.add(3L, 3)); System.out.println("cal.add(3, 3L) 결과: " + cal.add(3, 3L)); System.out.println("cal.add(3L, 3L) 결과: " + cal.add(3L, 3L)); int[] a = {100, 200, 300}; System.out.println("cal.add(a) 결과 : " + cal.add(a)); } }
Java
복사

생성자

생성자는 인스턴스가 생성될 때 호출되는 ‘인스턴스 초기화 메서드’이다.
생성자 역시 메서드처럼 클래스 내에 선언되며, 구조도 메서드와 유사하지만 리턴값이 없다.
생성자의 조건
생성자의 이름은 클래스의 이름과 같아야 한다.
생성자는 리턴 값이 없다.
생성자 구조
클래스이름(타입 변수명, 타입 변수명, ...) { // 인스턴스 생성 시 수행될 코드, // 주로 인스턴스 변수의 초기화 코드를 적는다. } class Point { Point() { // 매개변수 없는 생성자. ... } Point(int x, int y) { /// 매개변수가 있는 생성자. ... }
Java
복사