본문 바로가기

분류 전체보기

(145)
[ JAVA ] 클래스 고급 - 상속 (Inheritance) ③ // ○실습문제 //다음과 같은 프로그램을 구현한다. //단, 상속의 개념을 적용하여 작성할 수 있도록 한다. 실행 예) 임의의 두 정수 입력(공백 구분) : 20 15 연산자 입력( + - * / ) : - >> 20 - 15 = 5 계속하려면 아무 키나... import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; class AClass { protected int x, y; protected char op; AClass() { } void write (double result) { System.out.printf(">> %d %c %d = %.2f\n", x, op, y, result); }..
[ JAVA ] 클래스 고급 - 상속 (Inheritance) ② ※ 『super』 static으로 선언되지 않은 메소드에서 사용되며(static은 클래스 로딩 순간 메모리 로딩되는 것) 현재 클래스가 상속받은 상위 클래스의 객체를 가리킨다. super는 상위 클래스의 생성자를 호출하거나 상위클래스의 멤버 변수 또는 메소드를 호출할 때 사용할 수 있다, 하위클래스의 생성자에서 상위클래스의 생성자를 호출할때에는 ★하위클래스의 생성자 정의 구문에서 맨 처음에만 위치할 수 있다, ※ 생성자와 클래스 상속 간의 관계 하위 클래스는 상위 클래스의 멤버를 상속받지만 생성자는 상속 대상에서 제외된다 그리고 , 하위 클래스의 생성자가 호출될 때 자동으로 상위클래스의 생성자가 호출된다. 이 때, 상위 클래스의 생성자는 인수가 없는 생성자 (default 생성자 형태) 가 호출된다. (..
[ JAVA ] 클래스 고급 - 상속 (Inheritance) ● 상속(Inheritance)이란 새로 설계(생성)하고자 하는 클래스가 이미 설계되어 있는 다른 클래스의 기능과 중복되는 경우 이미 설계된 클래스의 일부분이나 전체 구조를 공유할 수 있도록 하는 기능을 의미한다. 즉, 상속은 객체를 좀 더 쉽게 만들 수 있는 고수준의 ★재사용성 (Reusability) ★을 확보하고 객체 간의 관계를 구성함으로써 객체 지향의 또 다른 큰 특징 중 하나인 『다형성』의 문법적 토대가 된다. 상속은 기존 프로그램의 클래스 내용을 공유함으로써 중복된 코드들을 다시 작성할 필요 없이 반복적이고 세부적인 작업을 처리하지 않기 때문에 프로그램을 작성하는 시간을 절약할 수 있고 유지보수를 편리하게 할 수 있으며 프로그램의 길이도 짧아지게 된다. 또한, 이미 작성된 프로그램들은 앞서 ..
[ JAVA ] 배열과 정렬알고리즘을 활용한, 성적 등수 출력 import java.util.Scanner; public class Test105 { public static void main(String[] args) { // 스캐너 인스턴스 생성하고 인원수만큼 이름과 점수를 받는다. // 받은 인원수를 기반으로 이름을 받을 String[], 점수를 받을 int[]을 만든다. // (인원수만큼)이름과 점수를 사용자에게 입력받는다. // for문을 이용해서 점수를 비교하고 배열 요소의 순서를 바꾼다. (점수의 경우 ^ 연산자, 이름은 String temp를 만들어 순서변경) // 결과를 출력한다. Scanner sc = new Scanner(System.in); int n; System.out.print("인원 수 입력 : "); n=sc.nextInt(); Sys..
[ JAVA ] 정렬 (Sort) 알고리즘 : "향상된" 버블 정렬 (Bubble Sort) ※ 앞서 포스팅했던 selection sort 나 bubble sort의 성능은 같다(반복의 횟수로 측정) 하지만, 향상된 Bubble Sort는 대상이 되는 데이터의 구조에 따라 일반 bubble sort나 selection sort보다 성능이 좋을 수 있다. 예를 들어 원본데이터 {61, 15, 20, 22, 30}을 오름차순으로 정렬한다고 했을 때 15 20 22 30 61 : 1회전에서는 스왑이 발생 15 20 22 30 61 : 2회전에서는 스왑이 발생하지 않고 다음 회전이 필요 X 1회전 수행...2회전 수행...을 해봤더니 2회전을 수행하는 과정에서 스왑(자리바꿈)이 전혀 일어나지 않았기 때문에 불필요한 추가 연산이 필요하지 않다. public class Test104 { public sta..
[ JAVA ]정렬 (Sort) 알고리즘 : 버블 정렬 (Bubble Sort) 52, 42, 12, 62, 60 → 0 1 ====== 52, 12, 52, 62, 60 → 1 2 ====== 52, 12, 52, 62, 60 → 2 3 ====== 52, 12, 52, 60, 62 → 3 4 ====== ------------------------------------------------------1회전 12, 42, 52, 60, 62 → 0 1 ====== 12, 42, 52, 60, 62 → 2 3 ====== 12, 42, 52, 60, 62 → 3 4 ====== ----------------------------------------------------- 2회전 12, 42, 52, 60, 62 → 0 1 ====== 12, 42, 52, 60, 62 → 1 ===..
[ JAVA ] 정렬 (Sort) 알고리즘 : 선택 정렬 (Selection Sort) ● 정렬이란? : 데이터를 특정한 규칙(기준)에 맞게 순서대로 나열(오름차순 , 내림차순) ● 정렬의 목적 : 데이터 처리 과정의 편의성이나 가독성을 높이기 위함 → 보기 좋게... 검색하기 위함. ※ 정렬은... 리소스 소모가 심하다. ● 정렬의 종류 : 선택정렬, 버블정렬, 삽입정렬, 힙정렬, 쉘정렬, 퀵정렬 .... 이외에도 많다. 52, 42,12,62,60 →0,1 ====== 42, 52,12,62,60 →0,2 === === 12, 52,42,62,60 →0,3 === === 12, 52,42,62,60 →0,4 === === ----------------------------------------1회전 12, 42,52,62,60 →1,2 ====== import java.util.Scan..
[ JAVA ] 주민등록번호 유효성 검사(...는 이제 안됨) ○ 주민번호 검증 공식 ① 마지막 자리를 제외한 앞자리 수를 규칙에 맞게 곱한다. 1 2 34 59 - 12 3 4 5 67( → 주민번호) * * * * * * - * * * * * * * 234567 892345 ( → 각 자리에 곱해진 수) ② 규칙에 맞게 곱셈 연산을 수행한 결과를 모두 더한다. ex 7 5 0 6 1 5 - 1 8 6 2 1 3 3 * * * * * * - * * * * * * 2 3 4 5 6 7 - 8 9 2 3 4 5 -------------------------------------------- 14 + 15+ .... 12+ 15 ==217 ③ 더해진 결과물을 11로 나누어 『 나머지』 를 구한다. 217 % 11 → 8 ④ 11에서 나머지를 뺀 결과값을 구한다. 11 ..