상속 : 부모 클래스로부터 자원을 물려받아 자식 클래스가 그 자원을 사용할 수 있도록 해주는 개념
상속 불가능 => private이 붙은 것(자기 자신의 클래스에서만 접근 가능하므로)
상속 : extends => 단일 상속만 가능, 단 상속의 상속은 가능
* 개발자가 선언하는 모든 클래스는 java.lang.Object를 상속 받아 선언됨.
대부분의 객체는 Object 클래스 타입으로 저장 받을 수 있다.
*기존 Java에서 제공하는 대부분의 메소드들은 반환하는 타입이 Obeject 타입이 많다.
부모클래스 : SuperClass
부모클래스의 생성자 : super();
부모클래스의 메소드 : super.메소드명();
Override(상속,메소드 내부 재정의) 와 Overloading의 차이점
Overloading(동일 메소드명으로 이용하여 다양한 데이터를 전달받는 메소드를 선언하는 기법)
(단, 매개변수의 데이터 타입이 다르거나 매개변수의 개수가 달라야한다.)
ex) print메소드를 살펴보면 이름은 같지만 변수의 데이터 타입이 다 다르게 되어있다.
ChildClass cc = new ChildClass();
=> 객체가 만들어 질때 ChildClass는 ParentClass 자체를 상속 받는게 아니라 ParentClass의 객체를 상속 받는 것이다
cc객체가 생성되는 순서
1. new ChildClass(); 실행
1-1 ChildClass();
1-1-1 동일 패키지내에 ChildClass파일을 검색, 없으면 전체패키지(접근제한자가 public)를 검색
1-1-2 ChildClass 파일내의 선언부를 확인
public class ChildClass extends ParentClass { }
1. extends를 발견하고 부모클래스명을 확인 (ParentClss)
2.ParentClass 파일 검색
3.ParentClass 파일 내부의 선언부 확인
4.상속키워드(extends)가 없을 경우, 클래스명(ParentClass)을 확인
5.클래스(ParentClass)내부를 선언(예, 변수, 메소드, 생성자, 등)
6. 선언이 끝나면 생성자 호출하여 객체를 생성(new ParentClass();)
7.extends 키워드에 의해서 ChildClass에서 상속시킴(즉, 객체가 상속되는 것)
=> extends ParentClass 끝난 시점
1-1-3. 클래스명(ChildClass)을 확인.
1-1-4. ChildClass 내부를 선언
1-1-5. ChildClass의 생성자를 호출
1-2 ChildClass 객체 생성 : new ChildClass() 이 끝난 시점.
public Class ChildClass extends ParentClass {
public ChildClass(){
// 부모의 생성자를 호출할려면 반드시 첫번째 줄에 입력해야한다.
super(); // 부모클래스(ParentClass)의 기본 생성자 호출
super("test"); // 부모클래스(ParentClass)의 추가 생성자에 값을 전달하여 호출
super.sum(20,30) //부모클래스(ParentClass)의 메소드(sum)에 값을 전달하여 호출
}
}
예제) 각 다른 기능을 가진 클래스로 하나의 뉴스표 만들기
프로젝트를 할 때는 항상 설계도를 만들어보고 코딩 할 것..
외부에서 데이터를 가져다 쓸것이기에 데이터 값을 넣어줄 AraayList만 선언 해줬다.
DO it HTML 5 CSS 3__고경희__이지스퍼블리싱__16800__06365234__20
모던 웹 디자인을 위한 HTML5 CSS3 입문__윤인성__한빛미디어__30000__06992821__21
HTML5 CSS3와 함께하는 드림위버 CS6 무작정 따라하기__고경희__길벗__24000__07056591__10
Head First HTML5 Programming__엘리자베스 롭슨,에릭 프리먼__한빛미디어__34000__06950729__20
만들면서 배우는 HTML5 CSS3 jQuery__야무__한빛미디어__25000__06837215__23
HTML5 CSS3__양용석__로드북__25000__06741081__15
HTML5 CSS3 WebGL로 재미있게 배우는 HTML5 게임 프로그래밍__제이콥 세이드린__제이펍__30000__06980245__10
HTML5 캔버스 완벽 가이드__데이비드 기어리__위키북스__40000__07085557__10
올인원웹실무가이드 HTML 5 CSS 3__나인환 김은영 외 1명__제우미디어__28000__06630397__16
HTML5와 CSS3로 작성하는 반응형 웹 디자인__벤 프레인__에이콘출판__30000__06983417__20
HTML5가 보이는 그림책__ANK Co Ltd__성안당__31500__06992821__21
HTML5 Canvas__스티브 펄튼__한빛미디어__38000__06806523__20
세르게이의 HTML5 CSS3 퀵 레퍼런스__세르게이 마브로디__제이펍__20000__07114432__10
이제 실전이다 HTML5 CSS3 사이트제작의 모든것__양용석__로드북__25000__06880352__10
iOS와 안드로이드를 위한 HTML5__로빈 닉슨__한빛미디어__33000__07041351__10
값을 꺼내야 하기에 getter
부모클래스를 호출하기 위해서는 반드시 생성자 맨 위에서 호출
testToString()메소드에서 부모클래스의 값을 꺼내기 위해서 get메소를 이용
파일을 읽기 위해서.
1.FileReader클래스 & BufferedReader클래스 사용
2.try/catch 구문 (예외처리) => 외부값을 건드리기에 IOException (Input Output)
* 반드시 file클래스와 buffered클래스는..닫아줘야한다.. 깜빡했다..
더 해야할 일
출력을 위해 전체 데이터로 출력을 하는 메소드를 만들어야한다.
만들어진 메소드를 가지고 출력의 기능만 하는 메소드로 가져와서 마무리.
tags = tags + "<!doctype>";
tags = tags + "<html>";
tags = tags + "<head><title>News Stand</title></head>";
tags = tags + "<body>";
tags = tags + "<table border='1'>";
tags = tags + "<tr>";
tags = tags + "<td>책표지</td>";
tags = tags + "<td>제목</td>";
tags = tags + "<td>저자</td>";
tags = tags + "<td>출판사</td>";
tags = tags + "<td>정가</td>";
tags = tags + "<td>할인율</td>";
tags = tags + "</tr>";
for(~~~~~){
tags = tags + "<tr>"; // 행 시작
tags = tags + "<td>"; // 열 시작
tags = tags + "<img src='./bookImages/" + DataClass.books.get(n).getImg() + "' />";
tags = tags + "</td>"; // 열 닫기
tags = tags + "<td>"; // 열 시작
tags = tags + DataClass.books.get(n).getTitle();
tags = tags + "</td>"; // 열 닫기
tags = tags + "<td>"; // 열 시작
tags = tags + DataClass.books.get(n).getAuthor();
tags = tags + "</td>"; // 열 닫기
tags = tags + "<td>"; // 열 시작
tags = tags + DataClass.books.get(n).getPress();
tags = tags + "</td>"; // 열 닫기
tags = tags + "<td>"; // 열 시작
tags = tags + DataClass.books.get(n).getPrice()+"원";
tags = tags + "</td>"; // 열 닫기
tags = tags + "<td>"; // 열 시작
tags = tags + DataClass.books.get(n).getDiscount()+"%";
tags = tags + "</td>"; // 열 닫기
tags = tags + "</tr>"; // 행 닫기
}
tags = tags + "</table>"
tags = tags + "</body>"
tags = tags + "</html>"
FileWrite 클래스를 사용하여 파일 만들기
System.out.println(tags); => 값이 다 들어가있는지 확인하는 코드
'Learn > KH정보교육원' 카테고리의 다른 글
[KH정보교육원 당산] 12일차 (외부 라이브러리 사용 - 엑셀파일 만들기, 설계도 구성 연습) (0) | 2021.03.25 |
---|---|
[KH정보교육원 당산] 11일차( 상속예제, 인터페이스, 추상클래스) (0) | 2021.03.24 |
[KH정보교육원 당산] 9일차 ( interface 및 첫번째 테스트) (0) | 2021.03.22 |
[KH정보교육원 당산] 연습 문제1 (프로그래밍 언어 활용) (0) | 2021.03.21 |
[KH정보교육원 당산] 8일차 (File클래스, Buffered 클래스) (0) | 2021.03.19 |