JAVA (39) 썸네일형 리스트형 인터페이스(interface) implements 인터페이스는 static final 필드 public 추상 메소드 (몸통이 없는 instance 메소드) public default 메소드 (몸통이 있는 instance 메소드) private 메소드(몸통이 있는 instace 메소드) static public 메소드 static private 메소드 생성자x 또한 여러 인터페이스를 implements 가능하다(관련 내용은 아래에서) 인터페이스 멤버 변수는 public static final 로만 지정가능하며 생략 가능합니다 . 또한 멤버 함수는 public abstract final 로만 선언 가능합니다. 실제 변수를 int value = 0; 으로 선언하는 경우 public static final가 생략되어 있는 형태입니다. 상위 클래스에서 defau.. 추상 클래스 (abstract class) / 추상 메소드 (abstract method) 추상 클래스 (abstract class) 자식 클래스는 인스턴스 시키고 싶은데 부모껀 하기 싫다 *추상 클래스를 상속하면 자식도 추상 클래스 이기 때문에 인스턴스 생성이 안되고 인스턴스화 시키고 싶은 경우 재정의(override) 해야지만 가능하다. 추상 메소드 (abstract method) 추상 메소드 : 내용이 없고 형태만 있는 메소드 *추상 메소드를 가진 클래스는 무조건 추상 클래스가 되어야 한다. 추상 클래스는 인터페이스와 다르게 추상메소드를 구현 해야만 하진 않고 사용하고 싶거나 재정의하고 싶은 추상메소드를 골라서 구현 해야함 인터페이스는 무조건 부모가 가진 추상메소드를 모두 구현(재정의해서) 해야함 그래서 보통 abstract은 미완성된 설계도라고 보면되고 interface는 설계도가 완성.. 다형성(polymorphism) 부모(자식)클래스의 결정에 따라 다양한(메소드 선택결정) 선택을 할 수 있다. 다형성의 대상: 상속된 인스턴스의 메소드 다형성의 필요성: 선택의 범위가 넓다. 대게 부모클래스가 자식클래스를 선택해 사용//부모 클래스class Car_Class { String name; int speed; void run() { System.out.println("자동차 종류 : " + name + " / 자동차 속도: " + speed); }}//Bus 이름의 자식 클래스class Bus_Class extends Car_Class { Bus_Class(){ name="버스"; speed = 60; }}//Truk 이름의 자식 클래스class Truk_Class extends Car_Class { Truk_Class.. 상속 Extends / 오버라이딩(overriding) / 오버로딩(Overloading) 상속 1. 부모 클래스의 자원을 자식 클래스에서 사용 가능 2. 두 클래스 관계를 설정하는 것 3. 물려주는 쪽이 부모 클래스가 되고 받는 쪽이 자식 클래스가 된다. 4. extends 키워드를 사용한다. 5. 부모 클래스 = super 클래스 = 기초클래스: 멤버를 물려준다. 자식클래스 = 하위 클래스 = sub클래스: 멤버를 물려 받는다. 6. 객체 생성시 찾아가는 생성자는 부모 생성자를 먼저 찾아간다. 7. 상속 받은 내용을 재정의할 수 있다. (오버라이딩) public class Car_Extends {//부모 클래스 String name; int speed, price; public void setOption(int speed, int price) { this.speed = speed; this.. 생성자(Constructor) 생성자 객체가 만들어 질 때 초기값을 위해 실행되는 (특별한)메소드 객체가 생성될 때 자동으로 호출되는 메소드 생성자 안에는 값을 초기화 하는 코드가 있다. 생성자 안에서 변수를 선언하지 않는다. 생성자의 이름은 반드시 클래스 이름과 동일해야 한다. 생성자는 메소드이므로 여러 개 작성 가능(오버로딩) 생성자는 new 연산자를 통해 객체를 만들 때 한 번만 호출된다. 생성자는 리턴타입이 없다. 매개변수(전달인수)와 실행코드가 없는 단순 생성자를 '기본 생성자'라 한다. 또는 디폴트 생성자라고도 한다. 기본 생성자는 조건에 따라 자동으로 생성되기도 하고 직접 입력 해줘야 한다. 자동생성: 생성자가 하나도 없을 때 컴파일러가 자동으로 생성한다. 생성자가 하나라도 있을 경우 기본 생성자는 자동으로 생성되지 않는.. wrapper class 래퍼클래스(포장 클래스) (참조타입) 기본 자료타입으로 객체를 생성할 수 있게 만든 참조 타입형 특징은 기본 타입은 소문자로 시작하고 포장 클래스는 대문자로 시작한다 기본 타입 포장 클래스 (참조 타입) byte Byte char Character short Short int Integer long Long float Float double Double boolean Boolean 객체를 생성할 수 있기 때문에 포장클래스 객체의 메소드를 사용할 수 있다. boxing: 기본타입 -> wrapper class (참조타입)로 변환 unboxing: wrapper class (참조타입) -> 기본타입으로 변환 auto boxing (요즘은 굳이 변환할 필요 없다) //auto boxing int n = 222; Integer i = n; //au.. 기본적인 타입 기본형(Primitive type) byte(1byte), short(2byte), char(2byte), int(4byte), long(8byte) 정수형 float(4byte), double(8byte) 실수형 boolean(1byte) 논리형 char 문자(1글자); '' 작은따옴표로 감싸야함 참조형(Reference type) -기본 타입 8개 빼고 전부 다 라고 보면됨 -객체 형태로 저장됨 -실제 값이 저장된 메모리 주소를 저장해서 사용하는 데이터 형태 -배열도 참조 타입 String, Integer 이런애들은 기본적인 데이터 타입이 아닌 java.lang 에서 지원하는 애들이라서 객체에 포함된 메소드들을 사용할 수 있음 예를 들어 String 같은 경우 toString(); equl(); 같은.. Optional<> 설명 Optional은 Java 8부터 도입된 클래스로, null을 반환할 가능성이 있는 객체를 감싸는 래퍼 클래스입니다. 기존에는 null 값을 반환할 수 있는 객체의 경우 null 처리를 하지 않으면 NullPointerException 예외가 발생할 수 있었습니다. Optional은 이러한 예외를 방지하고, null 값을 반환하는 것을 방지하기 위해 도입되었습니다. Optional 클래스는 객체의 존재 여부를 확인하고, 값이 존재하면 그 값을 제공하거나, 값이 없으면 빈 Optional 객체를 반환합니다. 이를 통해 코드의 가독성을 높이고, NullPointerException 예외를 방지할 수 있습니다. Optional 클래스는 다양한 메소드를 제공하며, 예를 들어 Optional 객체에서 값을 .. 이전 1 2 3 4 5 다음