Language/Java 37

24. 객체 지향(14) - 생성자

1. 생성자1) 생성자란?생성자는 클래스의 인스턴스를 생성할 때 사용되는 특별한 메소드생성자는 클래스 이름과 동일해야 하며, 반환 타입이 없음생성자는 객체가 생성될 때 호출되어 객체의 초기 상태를 설정함2) 기본 생성자클래스에 생성자를 명시적으로 정의하지 않으면, 컴파일러가 자동으로 기본 생성자를 제공함기본 생성자는 매개변수가 없는 생성자임예제public class Car { public Car() { System.out.println("자동차 한 대가 생성되었습니다."); } public static void main(String[] args) { Car car = new Car(); // 자동차 한 대가 생성되었습니다. }}3) 사용자 정의 생성자기본 생..

Language/Java 2024.06.20

23. 객체 지향(13) - Object의 메소드

1. Object 클래스Java에서 모든 클래스는 Object 클래스를 상속받음Object 클래스는 몇 가지 중요한 메소드를 제공합니다: toString(), equals(), hashCode() 등등1) toString() 메소드toString() 메소드는 객체를 문자열로 표현할 때 사용됨기본적으로 클래스 이름과 해시코드 값을 반환함오버라이딩하여 객체의 유용한 정보를 반환하도록 할 수 있음예제 : toString() 메소드 오버라이딩public class Car { private String model; private int year; public Car(String model, int year) { this.model = model; this.year = ye..

Language/Java 2024.06.20

22. 객체지향(12) - 상속(2)

- 다형성과 메소드 오버로딩다형성(Polymorphism): 하나의 메소드나 클래스가 여러 가지 형태를 가질 수 있는 성질메소드 오버로딩(Overloading): 같은 이름의 메소드를 여러 개 정의하는 것메소드의 이름은 같지만 매개변수의 타입이나 개수가 달라야 함예: System.out.println() 메소드의 다양한 형태 1. 메소드 오버라이딩메소드 오버라이딩(Overriding): 부모 클래스의 메소드를 자식 클래스에서 재정의하는 것부모 클래스의 메소드와 같은 시그니처(메소드 이름, 매개변수 타입, 매개변수 개수)를 가져야 함자식 클래스에서 오버라이딩된 메소드가 실행됨예제public class Car { public void run() { System.out.println("전륜구..

Language/Java 2024.06.20

21. 객체지향(11) - 상속(1)

1. 상속1) 상속의 개념 상속은 객체지향 프로그래밍에서 중요한 개념으로, 한 클래스가 다른 클래스의 속성과 메소드를 물려받는 것을 의미상속 관계는 "is-a" 관계 혹은 "kind-of" 관계라고도 함예: 노트북은 컴퓨터이다 (Notebook is a Computer)예: 세탁기는 가전제품이다 (Washing Machine is a Home Appliance)2) 상속의 구조상속은 상위 클래스(부모 클래스)와 하위 클래스(자식 클래스) 간의 관계를 정의함부모 클래스의 모든 필드와 메소드는 자식 클래스에 상속됨예제: 전자제품 클래스와 하위 클래스public class Electronics { public void turnOn() { System.out.println("Turn on th..

Language/Java 2024.06.20

19. 객체지향(9) - 다형성과 오버로딩

1. 다형성(Polymorphism)과 오버로딩(Overloading)1) 다형성(Polymorphism)다형성은 프로그래밍 언어의 각 요소들이 다양한 자료형에 속하는 것을 허가하는 성질Java에서 다형성의 한 예로, System.out.println() 메소드를 들 수 있음2) 오버로딩(Overloading)오버로딩은 같은 이름의 메소드가 매개변수의 타입이나 개수에 따라 여러 개 정의되는 것을 의미System.out.println() 메소드가 다양한 타입의 매개변수를 받을 수 있는 것은 오버로딩 덕분3) 예제: System.out.println()System.out은 PrintStream 타입PrintStream 클래스에는 여러 개의 println() 메소드가 정의되어 있음println(boolean ..

Language/Java 2024.06.20

18. 객체지향(8) - 추상화

1. 추상화의 개념추상화는 중요한 것을 남기고 불필요한 것을 제거하는 과정예를 들어, 바닷가에서 노란 치마를 입은 여자를 보고 그 이미지를 단순화하여 "노란 치마를 입은 소녀"라고 표현하는것이 추상화1) 객체지향 프로그래밍에서의 추상화- 객체지향 프로그래밍에서 추상화는 매우 중요- 특정 객체를 바라보는 관점에 따라 중요한 정보가 달라짐예: 책상을 바라보는 서점 주인, 학생, 이삿짐 센터 직원의 관점이 다를 수 있음2) 추상화의 예시서점에서의 고객:중요한 정보: 이름, 연락처 등불필요한 정보: 몸무게, 신발 사이즈 등헬스클럽에서의 고객:중요한 정보: 이름, 연락처, 몸무게 등신발 가게에서의 고객:중요한 정보: 이름, 연락처, 신발 사이즈 등3) 잘못된 예시모든 고객 정보(이름, 연락처, 몸무게, 신발 사이..

Language/Java 2024.06.20

17. 객체지향(7)

1. 클래스 메소드와 인스턴스 필드1) 필드 구분- 클래스 메소드 (static method): 클래스 자체에 속하는 메소드로, 인스턴스를 생성하지 않아도 사용할 수 있음- 인스턴스 필드: 각 객체가 개별적으로 가지는 변수로, 인스턴스가 생성될 때마다 독립적으로 존재- 클래스 메소드에서는 인스턴스 필드를 사용할 수 없음, 이는 클래스 메소드가 인스턴스 없이 호출되기 때문public class Person { String name; // 인스턴스 필드 static int count = 0; // 클래스 필드 public void printName() { System.out.println("내 이름은 " + name); } public static void printC..

Language/Java 2024.06.20

16. 객체지향(6)

1. 인스턴스 필드와 클래스 필드1) 필드- 클래스가 가지는 속성을 자바에서는 필드라고 함- 다른 언어에서는 멤버 변수라고 말하기도 함- 필드는 어떤 키워드와 함께 사용하느냐에 따라 사용방법이 달라짐- static 키워드가 함께 사용되면 클래스 필드, 함께 사용되지 않으면 인스턴스 필드- 필드 선언 방법필드는 클래스 내에서 선언, 필드는 접근제한자, static 여부, 타입, 필드명으로 구성2) 인스턴스 필드: 각 객체가 개별적으로 가지는 변수. 인스턴스가 생성될 때마다 독립적으로 존재3) 클래스 필드(static 필드): 클래스 자체에 속하는 변수. 모든 인스턴스가 공유public class Person { // 인스턴스 필드 String name; // 접근제한자가 없으면 default 접..

Language/Java 2024.06.20

15. 객체지향(5)

1. Math 클래스 이해하기- Math 클래스: 자바에서 기본으로 제공하는 수학 관련 기능을 모아둔 클래스- Math 클래스의 메소드들은 모두 static 메소드로 정의되어 있으며, 인스턴스를 생성하지 않고 사용할 수 있음- Math 클래스의 일부 메소드Math.abs(-5); // 절대값 반환Math.max(10, 20); // 최대값 반환2. Static 메소드 정의하기 - Static 메소드는 클래스 자체에서 호출할 수 있으며, 인스턴스를 생성하지 않아도 됨- Static 메소드의 정의 public static int abs(int x) { if (x  3. Private 생성자- Private 생성자는 클래스 외부에서 인스턴스를 생성할 수 없게 함- 이는 주로 모든 메소드가 static..

Language/Java 2024.06.20

14. 객체지향(4)

1. Static 메소드란? - Static 메소드: 클래스 자체에서 호출할 수 있는 메소드로, 인스턴스를 생성하지 않아도 사용할 수 있음- Static 메소드는 클래스명으로 호출되며, 일반적으로 공용 메소드나 유틸리티 메소드로 사용됨A. Static 메소드 정의와 호출 - Static 메소드는 static 키워드를 사용하여 정의- Static 메소드는 클래스명으로 호출public class VendingMachine { public static void printVersion() { System.out.println("Version 1.0.2"); }}- Static 메소드 호출 VendingMachine.printVersion(); // 출력: Version 1.0.22. St..

Language/Java 2024.06.15