📚 Study/Java

○ 메소드 오버라이딩(Method Overriding)의 특징 메소드 이름, 리턴 타입, 파라미터 수나 타입이 완전히 일치해야 한다. 반드시 상속 관계가 있어야 한다. 재정의된 하위 클래스의 메소드 접근제어지시자는 상위 클래스의 메소드 접근제어지사자보다 범위가 크거나 같아야 한다. 예를 들어, 상위 클래스 메소드의 접근제어지시자가 『protected』인 경우 하위 클래스가 이 메소드를 오버라이딩 하는 경우 접근제어지시자는 『public』 또는 『protected』이어야 한다. 『static』, 『final』, 『private』 메소드는 오버라이딩 할 수 없다. Exception 의 추가가 불가능하다. 즉, 상위 메소드가 가지고 있는 기존의 예외 사항에 새로운 Exception 을 추가하는 것은 불가능하다..
○ 실습 다음과 같은 프로그램을 구현한다. 단, 상속의 개념을 적용하여 작성할 수 있도록 한다. 실행 예) 임의의 두 정수 입력(공백 구분) : 20 10 연산자 입력 (+ - * /) : - >> 20 - 10 = 10.00 계속하려면 아무 키나 누르세요... ▼ 내가 작성한 코드 import java.util.Scanner; import java.io.IOException; class Aclass { protected int x, y; protected char op; Aclass() { } void write(double result) { System.out.printf("\n>> %d %c %d = %.2f\n", x, op, y, result); } } // Aclass 를 상속받는 클래스로 설..
/* class Aclass { Aclass(int n) { } } class Bclass extends Aclass { Bclass() { super();//-->> 에러 발생 // 상위 클래스에 인자가 없는 생성자가 없기 때문에 불러올 수 없음 } } */ // 하위 클래스인 Bclass의 생성자에서 // 명시적으로 Aclass의 생성자를 호출하지 않으면 // 자동으로 인자 없는 생성자를 호출한다. // 하지만, Aclass 에는 인자가 있는 생성자만 존재하고 // 인자가 없는 생성자는 존재하지 않기 때문에 에러 발생한다. // 따라서, Bclass 생성자의 선두에 // 다음처럼 명시적으로 상위 클래스의 생성자 호출 구문을 작성해야 한다. /* class Aclass { Aclass(int n) { ..
// 부모 클래스 == 상위 클래스 == 슈퍼(super) 클래스 == 물려주는 클래스 == 상속하는 클래스 class SuperTest111 { protected double area;// protected가 나오면 상속을 위해 만들어졌구나~ 생각 // 생성자 SuperTest111() { System.out.println("Super Class..."); } void write(String title) { System.out.println(title + " - " + area); } } // 자식 클래스 == 하위 클래스 == 서브(sub) 클래스 == 물려받는 클래스 == 상속받는 클래스 public class Test111 extends SuperTest111 { /* protected doubl..
○ 상속이란? : 새로 설계(생성)하고자 하는 클래스가 이미 설계되어 있는 다른 클래스의 기능과 중복되는 경우 이미 설계된 클래스의 일부분이나 전체 구조를 공유할 수 있도록 하는 기능 즉, 상속은 객체를 좀 더 쉽게 만들 수 있는 고수준의 재사용성 (reusablility) 을 확보하고 객체 간의 관계를 구성함으로써 객체 지향의 또 다른 특징인 『다형성』의 문법적 토대가 된다. 상속은 기존 프로그램의 클래스 내용을 공유함으로써 중복된 코드들을 재작성할 필요 없이 반복적으로 세부적인 작업을 처리하지 않기 때문에 프로그램 작성 시간 절약, 편리한 유지보수, 프로그램 길이가 짧아지는 등의 이점이 있다. 또한, 이미 작성된 프로그램들은 앞서 테스트 되었기 때문에 오류를 줄일 수 있어 현재 작성 중인 프로그램에만..
○ 과제 사용자로부터 여러 학생의 데이터를 입력받아 점수가 높은 학생부터 낮은 순으로 등수를 부여하여 겨로가를 출력하는 프로그램을 구현한다. 단, 배열과 정렬 알고리짐즘을 활용하여 작성할 수 있도록 한다. 실행 예) 인원 수 입력 : 5 이름 점수 입력(1, 공백 구분) : 홍길동 90 이름 점수 입력(2, 공백 구분) : 김철수 80 이름 점수 입력(3, 공백 구분) : 김영희 85 이름 점수 입력(4, 공백 구분) : 이영지 75 이름 점수 입력(1, 공백 구분) : 김민수 95 ------------------- 1등 김민수 95 2등 홍길동 90 3등 김영희 85 4등 김철수 80 5등 이영지 75 ------------------- 계속하려면 아무 키나 누르세요... import java.uti..
// 향상된 버블 정렬(Bubble Sort) // ※ 앞에서 본 Selection Sort(Test107.java)나 Bubble Sort(Test108.java)의 성능은 같다. // (→ 성능에 대한 추정 근거 : 반복문을 수행한 횟수) // 하지만, 향상된 Bubble Sort 는 대상 데이터의 구조에 따라서 // 일반 Bubble Sort 나 Selection Sort 에 비해 성능이 좋을 수 있다. // 원본 데이터 : 61 15 20 22 30 // 15 20 22 30 61 - 1회전 (스왑 발생 → true) → 다음 회전 진행 ○ // 15 20 22 30 61 - 2회전 (스왑 발생 → false) → 다음 회전 진행 Ⅹ //==> 1회전 수행... 2회전 수행... 을 해 보았더니...
○ 정렬 : 데이터를 특정한 규칙(기준)에 맞게 순서대로 나열 (오름차순, 내림차순) ○ 정렬의 목적 : 데이터 처리 과정의 편의성이나 가독성을 높이기 위함 → 보기 좋게... 찾기 좋게... 검색이 편하게... ○ 정렬의 종류 : 선택 정렬, 삽입 정렬, 버블 정렬, 힙 정렬, 퀵 정렬, 쉘 정렬,,, // 버블 정렬(거품 정렬, Bubble Sort) // 실행 예) // Source Data : 52 42 12 62 60 // Sorted Data : 12 42 52 60 62 // 계속하려면 아무 키나 누르세요... 42, 52, 12, 62, 60 == -- 42, 12, 52, 62, 60 == -- 42, 12, 52, 62, 60 == -- 42, 12, 52, 60, 62 == -- --..
○ 정렬 : 데이터를 특정한 규칙(기준)에 맞게 순서대로 나열 (오름차순, 내림차순) ○ 정렬의 목적 : 데이터 처리 과정의 편의성이나 가독성을 높이기 위함 → 보기 좋게... 찾기 좋게... 검색이 편하게... ○ 정렬의 종류 : 선택 정렬, 삽입 정렬, 버블 정렬, 힙 정렬, 퀵 정렬, 쉘 정렬,,,
실행 예) 주민번호입력(xxxxxx-xxxxxxx) : 123456-12345678 //-- 입력 갯수 초과 >> 입력 오류~!!! 계속하려면 아무 키나 누르세요... 주민번호입력(xxxxxx-xxxxxxx) : 123456-123456 //-- 입력 갯수 미달 >> 입력 오류~!!! 계속하려면 아무 키나 누르세요... 주민번호입력(xxxxxx-xxxxxxx) : 1750615-1252085 //-- 유효한 주민번호 >> 정확한 주민번호~!!! 계속하려면 아무 키나 누르세요... 주민번호입력(xxxxxx-xxxxxxx) : 750615-1252086 //-- 잘못된 주민번호 >> 입력 오류~!!! 계속하려면 아무 키나 누르세요... ※ 문제 해결을 위한 추가 팁~!! 배열.length → 배열의 길이(배..
bono-hye
'📚 Study/Java' 카테고리의 글 목록 (4 Page)