[혼자 공부하는 자바] 7/13 9-1 [중첩 클래스와 중첩 인터페이스]
·
JAVA
중첩 클래스 / 멤버 클래스/ 로컬 클래스 / 중첩 인터페이스 클래스와 클래스간의 관계 내부에 선언하는.. ㅇㅇㅇ중첩 클래스 (nested class) class ClassName { class NestedClassName { } } : 클래스 내부에 선언한 클래스. ㄴ클래스간의 멤버들에 서로 쉽게 접근 가능 클래스 내부에 중첩 클래스는 두 가지로 분류한다. 1. 멤버 클래스 (클래스의 멤버로서 선언된다.) ㄴa)인스턴스 멤버 클래스 ㄴb)정적 멤버 클래스 2. 로컬 클래스 (생성자 or 메소드 내부에서 선언된다.) 당연히! 멤버 클래스는 -> 클래스나 객체가 사용중이라면 언제든지 재사용 가능. 로컬 클래스는 -> 메소드 실행 중에만 사용되고, 메소드가 종료되면 없어진다. ++중첩클래스 - 멤버클래스 -..
[혼자 공부하는 자바] 7/12 8-2 [타입 변환과 다형성] [인터페이스 상속]
·
JAVA
다형성 구현 위해서 : 메소드 재정의와 타입 변환이 필요했다. (상속에서 배움) 인터페이스도 '메소드 재정의, 타입 변환' 기능이 제공되므로, 다형성 구현을 공부할 수 있다. ㅡㅡㅡ 상속: 같은 종류의 하위 클래스를 만드는 기술 인터페이스: 사용 방법이 동일한 클래스를 만드는 기술 ㅡㅡㅡ 인터페이스의 다형성 -> 프로그램 소스 코드는 변함이 없다. 구현 객체만 교체함으로써 프로그램의 실행결과를 다양하게 만들 수 있다. 자동 타입 변환 + : 인터페이스 구현 클래스의 자식 객체도 인터페이스타입으로 자동타입변환 가능하다. 더보기 자동타입변환 ㅇ필드, 매개변수의 다형성을 구현할 수 있다. ㅇ필드, 매개변수 타입을 인터페이스로 선언 --> 다양한 구현 객체를 대입해서 실행결과를 다양하게 할 수 있다. 필드 다형..
[혼자 공부하는 자바] 7/11 8-1 [인터페이스] [추상 메소드] [실체 메소드]
·
JAVA
챕터8 쭈욱쭉 드로간다 냠냠 인터페이스 ㅇ인터페이스 개념이해, 선언하기 ㅇ인터페이스 구현 클래스 선언하고 이용하기 ㅇ인터페이스의 자동타입변환, 강제타입변환 알기 ㅇ필드와 매개변수의 다형성 이해하기 ㅇ인터페이스 상속해서 새로운 인터페이스 선언하기 개발 코드는 객체 내부구조 알 필요 없고 '인터페이스의 메소드만 알고 있으면 된다' 개발코드를 수정하지 않고 사용하는 객체를 변경할 수 있게 하기위해! -->코드 변경 없이 실행내용과 리턴값을 다양화할 수 있다. 인터페이스의 물리적 형태는 클래스와 동일함. ㄴ~.java 형태의 소스 파일로 작성된다. ㄴ컴파일러(javac)를 통해 ~.class형태로 컴파일된다. ㅇBut 소스작성할 때 '선언하는 방법'이 다르다! ㄴclass키워드 대신에 interface키워드를 ..
[혼자 공부하는 자바] 7/11 07-3 [추상 클래스] [실체 클래스] [메소드 재정의]
·
JAVA
추상 클래스, 추상 메소드, 재정의 abstract 실체 간의 공통 특성을 추출한 것.. 추상 클래스라는 건 뭔지 학습하자 ㅇ실체 클래스 = 객체를 직접 생성할 수 있는 클래스 ㅇ추상 클래스 = 클래스들의 공통적인 특성을 추출해서 선언한 클래스 ㄴ실체 클래스와 추상 클래스 -> 상속의 관계가 있다. ㄴ추상클래스가 부모, 실체 클래스가자식. ㄴ그러므로 실체클래스는 추상클래스의 모든 특성을 물려받고, 추가적인 특성을 가질 수 있다. 이 때 특성은 필드, 메소드 같은 것을 말한다. 그럼 추상 클래스는 어떤 용도로 사용할까? 추상클래스의 용도 ㅡ> 통일할 수 있는 기능을 객체마다 따로 부여하게 되면 같은 기능인데도 사용 방법을 달리 해야 해서 혼잡해진다. 그래서 추상 클래스에 통합할 수 있는 기능들을 넣고, 실..
[혼자 공부하는 자바] 7/10 07-2 [타입 변환과 다형성] [자동 타입 변환] [강제 타입 변환]
·
JAVA
다형성/ 클래스타입 변환/ 자동 타입 변환/ 강제 타입 변환/ instanceof 예전에 자동타입변환이랑 캐스팅(강제타입변환) 배웠었다. 그때는 변수 타입이었는데 클래스도 이러한 타입 변환이 있다! 또한 '다형성'이라는 개념도 배울 건데, '앞서 배운 재정의 + 이번에 배울 타입 변환'을 이용하면 객체지향 프로그래밍의 매우 중요한 특징인 '다형성'을 구현할 수 있다. 어떤 객체를 이용하느냐에 따라 다양한 실행결과가 나오고, 성능이 달라진다. 다형성을 구현하려면 '메소드 재정의'와 '타입 변환' 필요하다. 그럼 이제 타입 변환을 공부하자 자동 타입 변환 (promotion) ㅇ클래스에도 타입변환이 있다. --> 클래스의 변환 : 상속 관계에 있는 클래스 사이에서 발생!! -->자식은 부모타입으로 자동 타입..
[혼자 공부하는 자바] 7/09 07-1 [상속] [자식클래스] [부모클래스] [오버라이딩] [메소드 재정의]
·
JAVA
클래스 상속해서 자식 클래스 선언하기 자동 타입 변환, 강제 타입 변환, 다형성 이해하기 클래스의 공통적 특성을 추출해서 추상 클래스로 선언하기 챕터7에서는 뭔가 클래스 관련한게 많다!!!>_유지보수 용이 ㅇ어떤 클래스를 상속받을지는 자식 클래스 선언할 때 선택한다. class 자식클래스 extends 부모클래스 { //필드 //생성자 //메소드 } 예시 class SportsCar extends Car { } ㅇ단 하나의 부모 클래스만 상속받을 수 있다! ㅇ부모 클래스에서 private 접근 제한을 갖는 필드, 메소드는 상속받지 못한다. 또, 부모와 자식 클래스가 다른 패키지에 존재한다? 이에 따라 default 접근 제한 갖는 필드, 메소드도 상속받지 못한다. 핸드폰 클래스를 상속해서 DMB 클래스를..
[혼자 공부하는 자바] 7/08 06-6 [패키지와 접근 제한자]
·
JAVA
6챕터의 마지막!! 6-6 패키지와 접근 제한자 패키지 선언, import문, 접근 제한자, Getter/Setter 6-6은 아주 막연하게 알았던 import문이나 접근 제한자를 공부한다. 처음 보는 Getter/Setter은 뭘까 >.
[혼자 공부하는 자바] 7/08 06-5 [인스턴스 멤버와 정적 멤버] [static] / [private] [접근제한자] / [final 필드] [상수]
·
JAVA
인스턴스 멤버/ this/ 정적 멤버/ static/ 싱글톤/ final필드/ 상수 뭔가 6-5는 새로 배우 것들이 많다!! >_>객체 내부에 포함되느냐, 공유해서 사용하느냐 클래스 멤버(필드, 메소드)는 객체에 포함되어 있다. --> 효율적일까? ㄴ객체마다 필드값이 다르면, 객체가 필드를 가지고 있어야 하겠지만 ㄴ객체들의 필드값이 모두 같다면.. 객체마다 필드를 갖고 있는게 메모리 낭비 ㄴ그래서 그럴때는 필드를 한 곳에 두고 공유하는 개념으로 쓰는게 좋을 수 있다. >>그래서 클래스 멤버(필드, 메소드)를 '인스턴스 멤버'와 '정적 멤버'로 구분해 선언하는 것이다. 인스턴스 멤버 >>나는 지금까지 '인스턴스 필드'와 '인스턴스 메소드'를 선언해온 것이다. >>이런 필드와 메소드는 '인스턴스 멤버이기 때..
[혼자 공부하는 자바] 7/07 06-4 [메소드]
·
JAVA
6-4 메소드 선언부, void, 매개변수, 리턴문, 호출, 오버로딩 메소드 메소드 선언: 1.선언부 2.실행블록 으로 구성된다. (선언부를 메소드 시그니처라고도 한다!) (선언부 --> 리턴타입, 메소드이름, 매개변수선언) ㄴ리턴 값이 없을 수도 있다. -->리턴 타입 void로 적는다. ㄴ리턴값 없으면 저장할 변수도 딱히 필요 없으니까 그냥 메소드만 호출하면 된다. ㄴ리턴 타입 있어도 반드시 변수에 넣을 필요는 없다. 리턴값이 중요하지 않다면 그냥 메소드만 호출해도 된다. 상황에 맞게 잘 쓰자!! >>리턴값이 없어 단순 호출만 할건지, 리턴값을 받아서 어떤 변수에 저장해둘건지. 메소드 이름도 자바 식별자 규칙에 맞게 작성한다. (복습: $랑_만 됨, 숫자로 시작하면 안됨 등등) +매개변수 관련 매개값..
[1주차] 기본미션 + 선택미션 [혼공단] [혼공자]
·
JAVA
더보기 기본미션 JDK설치화면 인증샷 설치폴더 인증입니다^ㅡ^/ 선택미션 학습스케쥴링