오전 1교시는 상속 실습

7. 상속(8)

Shape -> Circle, lectangle 클래스만들어서 출력하기


- 다형성 (8.다형성과 객체 형변환.ppt)

자바에서는 다형성을 지원하기위해 클래스 형변환을 지원한다.

부모 자식 클래스간에서만 클래스 형변환이 가능하다.

배열로 다양한 객체를 관리할때 좋다.

하나의 배열(타입) 안에 다양한 자식클래스를 넣을수 있다.

up casting 의 제약사항 : 자신의 수퍼클래스만 접근이 가능하다. 밑으로는 접근이 불가하다.

오버라이딩된 변수나 메서드는 JVM에서 찾아서 호출한다.


down casting : 원하는 클래스를 가리키는 변수가 필요하다.

(자식클래스)부모클래스 형식으로 사용하여 새로운 변수를 지정한다.

자식클래스의 새롭게 추가된 맴버들을 접근하기위해 필요하다.


- instanceof 연산자

래퍼런스 변수 instanceof type(클래스명)


instansof 자식클래스를 비교할시에 부모클래스도 모두 true이다.


object클래스의 equals는 ==와 같다

주소값을 비교해서 같으면 true


String 클래스에서 equals로 오버라이딩된 메소드가 있다.

object 가 자동으로 String타입으로 형변환된다.


- equals

object 클래스의 메서브 euqlas은 ==와 같다

값이 아닌 주소를 비교한다. 


하지만 String의 equals는 object equals를 오버라이딩(재정의) 해서 사용한다


//위임형 비교

return toString().equals(obj.toString());

// 여기서 사용되는 equals는 String에서 오버라이딩된 equals이다.(내용비교)

// obj.toString() 은 현재 들어온 객체 타입이 account(obj의 값) 이기때문에 account에서 오버라이딩된 toString을 호출한다.


- 추상(Abstract)클래스

서브클래스들이 반드시 구현(재정의 : Overring)해야하는 메서드 선언을 위한"수직적 규약"을 위한 용도의 클래스, 수직적 규약이란 자식클래스에 대한 규약이다.


1개 이상의 추상 메서드를 가지는 클래스

클래스 명 앞에 abstract 라고 입력한다.


금요일 오전 필기 시험!!


- 인터페이스

인스턴스 생성 목적이 아니라 서로 다른 클래스간의 상호작용을 위한 "수평적 표준 규약(격)"을 위한 목적이다.


구현 클래스에서 "implements "인터페이스명" 으로 써준다.


타입선언은 가능하다(interface 명(형)으로) 선언할수있따.


자바에 다형성을 지원하는 기술 3가지

클래스 형변환

추상클래스

인터페이스







'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

7월 3주차 1일 (3주)  (0) 2015.07.20
7월 2주차 4일 (2주)  (0) 2015.07.16
7월 2주차 2일 (2주)  (0) 2015.07.14
7월 2주차 1일 (2주)  (0) 2015.07.14
7월 1주차 5일 (1주)  (0) 2015.07.10
Posted by moyaiori
,

클래스 4대 특징 시험문제!!


은닉화(캡슐화), 다형성, 추상화, 상속성


다형성이 제일 중요하다


ppt 9번까지 나간후에 이론시험칠 예정


- java.lang.String 클래스


배열의 특징 : 한번 생성하면 크기를 변경할 수 없다.


한번 생성된 인스턴스는 편집 개념이 아니라 새로운 내용을 추가한 새로운 메모리를 생성한다.


- java.lang.String 클래스의 주요 메서드

6. 표준 API의 기본클래스 활용.ppt (6)


boolean equals(Object anObject : 두 string 클래스 내용이 같은지를 비교한다.

boolean equalsIgnoreCase(Object anObject : String을 비교할때 대소문자를 비교하지않는다.

String substring(int beginIndex) : 지정 위치 뒤로 모두가져온다, 매게변수를 두개줄경우 시작과 끝을 지정해준다.

String concat(String str) : 주어진 문자열을 합친다. 보통 "+"를 쓴다.

String replace(char oldChar, char newChar) : 기존의 oldChar를 NewChar로 바꾼다. 값이 같으면 모두 바뀐다.

String toLowerCase() : 모든문자를 소문자로

String toUpperCase() : 모든문자를 대문자로

char charAt(int index) : index로 지정된 곳의 문가밧을 변환한다.

int indexOf(int ch) : 주어진 문자가 존재하는 위치를 알려주고 없으면 -1을 돌려준다.

주민등록번호 처리 연습 : 사용자가 입력을 잘못했을경우를 가정하여 "-" + 1 의 위치로 성별을 구분한다.

int lastIndexOf(int ch) : 주어진 문자가 존재하는 마지막위치를 알려준다.

String trim() : 문자열의 시작과 끝 사이에 있는 공백을 없앤다. 중간 공백이 아닌 앞뒤 공백만 지워준다.

static String valueOf(Object obj) : 주어진 객체나 기본 데이터형을 문자열로 형변환하여 반환한다.


- java.lang.StringBuffer 클래스

자체 편집이 가능한 "문자열" 처리와 관련도니 기능을 제공하는 클래스

명시적 생성만 된다.


StringBuffer append(String str) : str로 주어진 문자열을 스트링 버퍼의 맨 마지막에 추가한다. 자기 자신을 리턴한다. 체인기법을 사용할 수 있다.

StringBuffer inser(int offset, String str) : 지정된 위치에 문자열을 추가한다.

StringBuffer delete(int start, int end) : start ~ end-1의 문자를 지운다

StringBuffer replace(int start, int end, String str) : start ~ end -1 을 지우고 대신 문자열을 넣는다.

StringBuffer reverse() : 문자열의 순서를 뒤집는다.

CRUD 작업을 하기 쉽도록 API를 제공


- java.util.String.Tokenizer 클래스(11)

하나의 "문자열"을 여러개의 문자열로 분리한느데 사용할 수 있도록 제공된느 유틸리티 클래스

나누는 단위가 되는 문자열을 토큰이라고 한다.

토큰 분리자를 생략하면 공백, 지정하면 지정된 문자이다.


- 래퍼 (Wrapper : 포장)클래스

기본 데이터 타입을 객체로 포장하여 다양한 기능을 사용할 수 있도록 하는 래퍼클래스를 제공한다.

기본 8개 + String(비공식)


- java.lang.Boolean 클래스(14)

생성자 메게변수로 문자열도 받을수있다. 알아서 bool으로 변환

생성자 < - > "타입명"Value() : 클래스의 객체화와 기본형으로 바꿔서 상대적이다.

기본 타입과 객체 타입간의 형변환을 위해 존재(주로 사용하는 기능)


- java.lang.Math 클래스(21)

수학관련 상수와 클래스 메서드를 제공한다.


- java.util 패키지의 주요 클래스(24)

date는 페기처분된 메소드가 많아서 사용하지않는다

date()(생성자)는 자주사용한다 : 시스템 시간을 가져온다.

calender 클래스르 자주쓴다


- java.util.calendar 클래스(26)

클래스 생성시 동적인 정보를 가져올때는 팩토리 메소드를 활용한다.

다양한 상수를 통하여 값을 가져오거나 셋팅한다.


- java.util.Random 클래스(30)

math 클래스보다 더 다양한 랜덤값을 준다.

기준값을 줄수있다. (seed값)


- system클래스

JVM을 추상화 시켜놓은 클래스이다.



-- 오전끝


System.exit(0); : 프로그램 종료

System.gc(); : 가비지 콜렉터 호출, 실제론 의미가 별로없다

System.in.read(); : 키보드로 인풋을 받는다.

System.currentTimeMillis(); : 1970년도 부터 온시간은 밀리세컨드로 반환(long)

System.arrayCopy(); : 배열 복사


확장for문 알아보기


OS기능중 중요한거 : 하드웨어관리, 프로세스관리


- 7. 상속.ppt

사전에 정의되어있는 클래스의 속성이나 메서드를 새로 정의하고자 하는 클래스에서 그대로 내려 받아 속성이나 메서드르 재사용하는 객체지향의 대표적 기술이다.


재사용, 재정의, 추가(확장) -> 상속


정확한 의미로 클래스 상속이다.


부모 < - > 자식관계가 됫을때 "is a"관계가 된다고 한다.


부모클래스 or 슈퍼클래스(Super class)

자식클래스 or 서브클래스(Sub class)


상속이된 클래스를 생성시에 메모리는 자식클래스와 상속클래스가 동시에 할당된다.


자식클래스에는 없고 상속받은 속성이나 메소드가 있을경우 메모리에 할당된 부모클래스에서 찾아서 호출한다.


모든 클래스는 object클래스를 상속받는다.


- 자바에서 자동으로 생성되는것들

디폴트생성자, extends Object, 생성자 첫번째 줄에 super(); 붙여준다 (자동으로 부모클래스의 디폴트 생성자를 호출한다)


- 재정의 (overriding)

재정의는 변수, 메서드 모두 해당한다.

보통 메서드에 많이 쓴다.

메서드 재정의시 구현부만 달라진다.


toString은 object 클래스(최상위클래스) 의 메소드이다

오버라이딩을 할 수 있다.


- 상속 제약 사항

다중상속을 지원하지않는다.

부모클래스의 private는 상속되지않는다.

생성자는 상속되지 않는다.

super : 슈퍼클래스의 인스턴스를 가리키는 참조(래퍼런스) 변수

super() : 슈퍼클래스의 생성자 호출


명시적으로 생성하지않을경우 디폴트 생성자가 추가된다.

생성자를 만들시에 디폴트 생성자를 꼭 만들어야하는 이유중에 하나


- 오버라이딩 규칙(7)

기본적으로 메서드 선언부가 동일해야된다.

접근제한자는 같거나 더 넓어야한다.













'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

7월 2주차 4일 (2주)  (0) 2015.07.16
7월 2주차 3일 (2주)  (0) 2015.07.15
7월 2주차 1일 (2주)  (0) 2015.07.14
7월 1주차 5일 (1주)  (0) 2015.07.10
7월 1주차 4일 (1주)  (0) 2015.07.09
Posted by moyaiori
,

졸업논문으로 인해 결석


'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

7월 2주차 3일 (2주)  (0) 2015.07.15
7월 2주차 2일 (2주)  (0) 2015.07.14
7월 1주차 5일 (1주)  (0) 2015.07.10
7월 1주차 4일 (1주)  (0) 2015.07.09
7월 1주차 3일 (1주)  (0) 2015.07.08
Posted by moyaiori
,