Java 코드연습/상속 5

[뉴렉처] 자식 클래스의 객체 초기화(부모클래스의 객체 포함)

import Exam_1.UI코드분리하기.Exam; public class Program { public static void main(String[] args) { NewlecExam exam = new NewlecExam(1, 1, 1, 1);//생성시 직접입력 가능해짐 //exam.setMath(10); //생성자가 있어서 필요 따로 입력할 필요 없게됨 //exam.setKor(10); //exam.setEng(10); //exam.setCom(10); System.out.println(exam.total()); System.out.println(exam.avg()); } } import Exam_1.UI코드분리하기.Exam; public class NewlecExam extends Exam { p..

[뉴렉처] Override(우선순위가 높은) 메소드

NewlecExam에 total() 메소드가 있었으면 NewlecExam.total(); 이 실행 되었겠지만 없으면 차선책으로 Exam.total()이 실행되게됨 만약에 NewlecExam.total(); 을 정의한다면 오버라이드 메소드가 되고 우선 순위가 Exam.total()이 아닌 NewlecExam.total();가 우선순위가 된다. (오버라이드된 메소드가 우선순위가 더 높음) Ctrl + Spacebar를 누르면 아래와 같이 나옴 import Exam_1.UI코드분리하기.Exam; public class Program { public static void main(String[] args) { NewlecExam exam = new NewlecExam(); exam.setMath(10);//지금..

[뉴렉처] IS A 상속

부품이 없을때는 어쩔수 없이 조립을 해야함 - has a 상속 (캡슐화해서 jar파일 만들어서 가져다가 쓴것) 일부의 부품은 어느정도 비슷한 틀을 가져와서 커스텀하는것 - is a 상속 변경해야할 부분이 적을때 비슷한 틀을 가져와서 만드는 것이 생산성이 훨씬 높다 생산성을 높이기위한 틀을 Framework라고 한다 단점으로는 기성복 같이 유니크하지는 않다 예를들어서 설명해 주셨는데 요즘 김치를 만들때 90%는 미리준비된 야채같은 것은 구매하고 10%의 소스의 차별화로 김치를 만드는 것과 같음 기성품에 내가 원하는 부분을 추가 커스텀함 is a 상속 기존에서 컴퓨터 과목 추가 (com) 하려고함 코드 재사용, 만들어 두었던 Exam을 jar파일로 압축해서 import함(코드재사용 참고) import Exa..

[뉴렉처] 코드 재사용이란?

https://www.youtube.com/watch?v=lMgqHYSyK28&list=PLq8wAnVUcTFX4E2NplMvJfqlcgAeF_BxK&index=14 이클립스사용하면서 정말 중요한 내용인것 같다. 재사용이란? 소스를 재사용 하는것이 아닌 배포된 제품을 재사용한다 위 그림은 수작업으로 하는방법이고 따로 이클립스에서 자동으로 해주는 기능이 있음 1. 2. 3. 우클릭 할때 Navigator에서 하면 Build Path가 안보임 Package Explorer에서 해야함 Build Path -> Configure Build Path 클릭 import Exam_1.캡슐화.Exam; public class Program { public static void main(String[] args) { E..

[뉴렉처] Has A 상속

Has A 캡슐이 다른 캡슐의 객체를 가지고 있는 상태 캡슐이 다른 캡슐을 부품처럼 가지게 되는 상태 Composition Has A A라는 객체가 만들어질때 B라는 객체도 함께 만들어짐 Has A 방식 Composition Has A Aggregation Has A ExamConsole 에겐 Exam은 부품같은 존재 잠시쓰고 버리는게 아니라 지속적임 일체형 Has A 관계 누군가가 ExamConsole을 만들면 ExamList(부품)도 같이 만들어지는것 public class ExamConsole { private ExamList list; public ExamConsole() { list = new ExamList(); } Aggregation Has A 생성자에서 바로 Exam을 생성하지 않고 나중..