Backend
home
📚

Java 기본 개념 압축 정리 - 2

게시일
2025/01/22
생성 일시
2025/01/24 05:52
최종편집일시
2025/01/24 05:52
태그
Java

객체의 생성과 사용

•
클래스명 변수명;
◦
클래스의 객체를 참조하기 위한 참조변수 선언
•
변수명 = 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
복사