본문 바로가기

JAVA/JAVA_1

(30)
Chap12.Wrapper클래스 Wrapper 클래스란? : 기본형 데이터 타입을 객체로 표현하는데 사용되는 클래스들을 통칭 (기본형데이터타입을 감싸고 있는) : 기본형 타입과 object데이터 타입 간 서로 변환 하기 위한 중간 다리 역할 wrapper클래스 boxing unboxing : 기본형→ object 데이터형으로 boxing : object 데이터타입→ 기본형으로 unboxing : 원래 Integer obj에서 int로 하려면 Integer.parseInt()이용 double에서 Double로 하려면 .doubleValue()이용
Chap11-02.람다식 (최근 trend) : 메서드를 하나의 식으로 표현 메서드의 이름과 반환값(메서드 시그너쳐) 없어지므로, 람다식 익명함수 함수형 인터페이스 (functional interface) : 람다식을 다루기 위한 인터페이스 package kosta.oop4.inner.lamda4; public class Main { static void execute(MyFunction f) { f.run(); } static MyFunction getMyFunction() { MyFunction f=()->System.out.println("f3.run()"); return f; } public static void main(String[] args) { // TODO Auto-generated method stub MyFunction f1=(..
Chap11-01.Inner 클래스 예시2(인터페이스 익명내부클래스 이용) Main package kosta.HW.OOP5_interface; public class Main { public static void main(String[] args) { OracleDao oDao=new OracleDao(); MySQLDao mDao=new MySQLDao(); DAO mSSQLDao=new DAO() { @Override public void insert() { System.out.println("MSSQLDao insert호출"); } }; Service oservice=new Service(oDao); Service mservice=new Service(mDao); Service mssservice=new Service(mSSQLDao); oservice.insertDao(..
Chap11-01.Inner 클래스 예시1(추상클래스 익명내부클래스 package kosta.oop4.inner; public class SNSMessenger extends MessageSender { @Override void send(String message) { System.out.println("SNS메신저 Send!!!"); } } main package kosta.oop4.inner; public class Main { public static void main(String[] args) { SNSMessenger sns=new SNSMessenger(); sns.send("OK"); //별도의 클래스 생성없이 익명내부클래스 이용해서 바로 쓸 수 있다 (코드를 경제적으로 써서 사용할 수 있다) MessageSender ms=new MessageSender(..
Chap11-01.Inner 클래스 ( ) 안에 익명내부 클래스 -추상클래스 익명내부클래스이용 -인터페이스 익명내부클래스이용 : 클래스안에 또 다른 클래스가 들어가 있는 구조 (클래스의 멤버 클래스로 들고 있다) : 다른 클래스에는 잘 안 사용되고 특정 클래스에서만 사용될 때 타입 나타낼 때, 클래스명.내부클래스명 타입이다!!!!
Chap10_02.인터페이스 클래스는 다중 상속을 허용하지 않기 때문에 인터페이스를 통해서 다중상속 대신 표현 -문법 : interface 인터페이스명{ -추상메서드:abstract 리턴형 메서드명(), or 리턴형 메서드명() } -이용할 때 class 클래스명 implements 인터페이스명{} 구현되어진다 -인터페이스 implements하는 클래스는 인터페이스로 형변환이 가능하다. 역할 (두 가지 다 중요!!!!) 1. 코드 독립성, 일관성 유지⇒표준화 설계 (본인이 인터페이스를 직접 구현했을 때) 2. 직접적으로 해당 기술을 구현하기 위해 (자바 API 인터페이스를 구현했을 때) ex)쓰레드를 구현해라한다면, 해당 인터페이스(API를 찾아)를 구현해서 override하면 구현하는 것이다. package kosta.oop3.I..
Chap10_01.추상메서드, 추상클래스 (abstract) 추상메서드 :메소드의 내용이 없다. (호출하여 실행하려는 목적이아니다) 추상클래스 (코드의 독립성이 있으면 유지 보수 비용 시간 줄일 수 있다) 추상클래스가 교통정리역할(자식클래스에게 상속하면서) : 추상메소드를 하나라도 가지고있는 클래스를 추상클래스라고 한다.(abstract class) -특징: 객체 인스턴스화를 금지한다 (인스턴스화 new 연산자로 객체생성하는 것), 객체생성X -목적 : 자식클래스에게 강제로 사용하도록 하기위해서 추상메소드를 가진 추상클래스이다. -용도 : 코드의 독립성을 유지하기 위해서, 코드의 일관성 ⇒ 표준화 된 코드를 짤 수 있도록 해준다 인터페이스로도 똑같이 할 수 있다
상속 Review 상속 : -경제적 측면 : 부모클래스의 변수와 매서드를 정의없이 자식클래스가 쓸 수 있다 -사회적 측면 : 부모클래스 데이터형으로 변환이 가능하다 (부모클래스타입 배열에 자시클래스타입들을 모아서 저장할 수 있다) 상속 vs 연관 -is a(상속) 자식타입은 자식타입이기도 하고 부모타입이기도 하다 -has a (소유) : relation 연관 관계 사용 상속 방법: class 자식클래스 extends 부모클래스{ } : 자바의 장점 (부모를 선택할 수 있으므로 기존에 있는 것을 확장해 나갈 수 있다) 상속에서 생성자 관계 자식클래스 생성하면 → 자식의 생성자 호출되면서 부모의 생성자 호출 → (부모객체 생성) 부모객체의 메모리가 할당 되었다(멤버변수, 메서드)+ 자식 메모리 할당 : 자식을 생성하면 부모의..