분류 전체보기 279

[뉴렉처] 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을 생성하지 않고 나중..

[코드업] 파이썬 기초 100제 6087

n = input() n = int(n) for i in range(1,n+1): if i%3==0: continue else: print(i) 1부터 입력한 정수까지 1씩 증가시켜 출력하는 프로그램을 작성하되, 3의 배수인 경우는 출력하지 않도록 만들어보자. 예를 들면, 1 2 4 5 7 8 10 11 13 14 ... 와 같이 출력하는 것이다. 예시 ... for i in range(1, n+1) : if i%2==0 : continue #다음 반복 단계로 넘어간다. print(i, end=' ') #i가 짝수가 아닐 때만 실행된다. ... 위 코드는 홀 수만 출력하는 예시이다. 참고 조건문이나 반복문의 코드블록 안에서 continue 가 실행되면, 반복 블록 안에 있는 나머지 부분을 실행하지 않고,..

[코드업] 파이썬 기초 100제 6086

1, 2, 3 ... 을 순서대로 계속 더해 합을 만드는데, 그 합이 입력한 정수보다 작을 동안만 계속 더하는 프로그램을 작성해보자. 즉, 1부터 n까지 정수를 하나씩 더해 합을 만드는데, 어디까지 더해야 입력한 수보다 같거나 커지는지 알아보고자 하는 문제이다. 하지만, 이번에는 그 때 까지의 합을 출력해야 한다. 예를 들어, 57을 입력하면 1+2+3+...+8+9+10=55에서 그 다음 수인 11을 더해 66이 될 때, 그 값 66이 출력되어야 한다. 예시 ... while True : s += c c += 1 if s>=n : break print(s) 참고 조건문이나 반복문의 코드블록 안에서 break 가 실행되면, 반복실행을 중단(break)하고, 가장 가까운 반복 블록의 밖으로 빠져나간다. 입..

[뉴렉처] ExamConsole 클래스 구현하기

(UI 코드는 분리하는 것이 기본) 이전편을 이어서 완성 https://www.youtube.com/watch?v=ao3AiA26rJ4&list=PLq8wAnVUcTFX4E2NplMvJfqlcgAeF_BxK&index=11 ExamConsole에 사용자 입력, 출력 기능들을 모두 옮겼고 그에 따른 내부적 오류가 발생되는 부분을 처리함 Exam_1에서는 ExamList에서 입력과 출력을 받았던 것을 ExamConsole로 변경 ExamConsole list = new ExamConsole(); package Exam_1.UI코드분리하기; import java.util.Scanner; public class Exam_1 { public static void main(String[] args) { ExamCo..

Java 코드연습 2021.10.22

[뉴렉처] UI 코드는 분리하는 것이 기본

package Exam_1.UI코드분리하기; public class ExamConsole { } UI코드를 넣을 클래스 생성 package Exam_1.UI코드분리하기; import java.util.Scanner; public class ExamList { private int current; private Exam[] exams; public ExamList() { // 생성자 : 객체 생성시 단한번만 실행 되게됨 this.exams = new Exam[3]; this.current = 0; } void inputList() { //앞에 private 있으면 호출 안됨 다른 클래스에서 못씀 Scanner scan = new Scanner(System.in); System.out.println("---..