본문 바로가기

IT Note/Java169

728x90
JAVA_ Test112_ 인터페이스(Interface) 정의 Test112 인터페이스(Interface) 정의※ 인터페이스(Interface) : 완전히 미완성된 채로 남겨져 인터페이스 안에 존재하는 그 메소드도 몸체(정의부)가 없기 때문에 실행 부분이 존재하지 않는다. 클래스를 위한 템플릿으로써의 기능을 수행하는 추상클래스의 한 종류이다.※ 인터페이스는 클래스와 달리 다중 상속이 가능하며인터페이스 자체도 상속된다. 기존의 C++ 언어 등에서 지원되는 다중 상속이 사용 과정에서 많은 문제점을 노출시켰기 때문에 자바에서는 다중 상속의 개념을 인터페이스라는 개념으로 변형하여 인터페이스를 통해 다중 상속을 구현하는 방법을 지원한다. ※ 인터페이스는 상수와 추상 메소드만 가질 수 있으며 인터페이스 안의 메소드들은 접근제어지시자를 명시하지 않아도 『public』으로 설정되.. 2018. 6. 15.
JAVA_ Test111_ 상속 관계에 있는 클래스들 간의 캐스팅 / 업 캐스팅, 다운 캐스팅 Test111 상속 관계에 있는 클래스들 간의 캐스팅 / 업 캐스팅, 다운 캐스팅※ 업 캐스팅, 다운 캐스팅이 정상적으로 이루어지는 경우 1. 하위 객체 생성;//-- check~~!!!★★ 2. 상위 = 하위;//-- 업 캐스팅. 정상. 3. 하위 = 상위;//-- 에러 발생. 4. 하위 = (하위)상위;//-- 다운 캐스팅. 정상. ※ 다운 캐스팅이 정상적으로 이루어지지 않는 경우 1. 상위 객체 생성; 2. 하위 = 상위;//-- 에러 발생. 3. 하위 = (하위)상위;//-- 다운 캐스팅. 런타임 에러. ※ 업 캐스팅은 항상 가능. 다운 캐스팅은 경우에 따라 가능. // super class SuperTest.java class SuperTest{public int a=10, b=20;public.. 2018. 6. 15.
JAVA_ Test110_ 추상 클래스(Abstract) Test110 추상 클래스(Abstract) : 메모리 낭비 없이 미리 호출 계획을 세워두기 위해 만든다.※ 추상 클래스(abstract) 선언만 있고 정의가 없는 하나 이상의 메소드(추상 메소드)를 갖는 클래스로 하위 클래스에서 오버라이딩(Overriding)할 것으로 예상되는 메소드에 대해 메모리 낭비 없이 미리 호출 계획을 세워두기 위해 만든다. ※ 형식 및 구조 [접근제어지시자] abstract class 클래스명 { [접근제어지시자] abstract 자료형 메소드명([매개변수], ...); } ※ 특징 클래스가 적어도 하나 이상의 추상 메소드를 포함할 때 그 클래스는 클래스 앞에 『abstract』 키워드를 붙여 추상클래스로 명시해야 하며, 추상 클래스로 선언한 경우에는 불완전한 형태의 클래스이.. 2018. 6. 15.
JAVA_ Test109_ 상속(Inheritance) / 메소드 오버라이딩(mathod Overriding)의 특징 Test109 상속(Inheritance) / 메소드 오버라이딩(mathod Overriding)의 특징※ 메소드 오버라이딩(mathod Overriding)의 특징 - 메소드 이름, 리턴타입, 파라미터 수나 타입이 완전히 일치해야 한다. - 반드시 상속 관계가 있어야 한다. - 재정의된 하위 클래스의 메소드 접근제어지시자는 상위 클래스의 메소드 접근제어지시자보다 범위가 크거나 같아야 한다. 예를 들어 상위 클래스 메소드의 접근제어지시자가 『protected』 인 경우 하위 클래스가 이 메소드를 오버라이딩(Overriding)하는 경우 접근제어지시자는 『protected』 또는 『public』 이어야 한다. - 『static』, 『final』, 『private』 메소드는 오버라이딩(Overriding)할.. 2018. 6. 15.
JAVA_ Test107_ 클래스 / 상속(Inheritance) / 생성자와 클래스 상속간의 관계 /『super』정의 / @Override Test107 클래스 / 상속(Inheritance) / 생성자와 클래스 상속간의 관계 /『super』정의 / @Override※ 『super』 static 으로 선언되지 않은 메소드에서 사용되며 현재 클래스가 상속받은 상위 클래스의 객체를 가리킨다. super는 상위 클래스의 생성자를 호출하거나 상위 클래스의 멤버 변수 또는 메소드를 호출할 때 사용할 수 있다. 하위 클래스의 생성자에서 상위 클래스의 생성자를 호출할 때에는 하위 클래스의 생성자 정의 구문에서 맨 처음에만 위치할 수 있다. ※ 생성자와 클래스 상속간의 관계 하위 클래스는 상위 클래스의 멤버를 상속받지만, 생성자는 상속 대상에서 제외된다. 그리고, 하위 클래스의 생성자가 호출될 때 자동으로 상위 클래스의 생성자가 호출된다. 이 때, 상위 .. 2018. 6. 14.
JAVA_ Test106_ 클래스 / 상속(Inheritance) 개요 / 『protected』 / extends Test106 클래스 / 상속(Inheritance) 개요 / 『protected』 / extends※ 상속(Ingeritance)이란 새로 설계(생성)하고자 하는 클래스가 이미 설계되어 있는 다른 클래스의 기능과 중복되는 경우 이미 설계된 클래스의 일부분이나 전체 구조를 공유할 수 있도록 하는 기능을 의미한다. 즉, 상속은 객체를 좀 더 쉽게 만들 수 있는 고수준의 재사용성(reusability)을 확보하고 객체간의 관계를 구성함으로써 객체 지향의 또 다른 큰 특징인 『다형성』의 문법적 토대가 된다. 상속은 기존 프로그램의 클래스 내용을 공유함으로써 중복된 코드들을 재작성할 필요 없이 반복적이고 세부적인 작업을 처리하지 않기 때문에 프로그램을 작성하는 시간을 절약할 수 있고 유지보수를 편리하게 할 수 .. 2018. 6. 14.
JAVA_ Test105_ 정렬(Sort) 알고리즘) / 점수가 높은 순으로 등수 결과를 출력하는 프로그램 Test105 정렬(Sort) 알고리즘 / 점수가 높은 순으로 등수 결과를 출력하는 프로그램※ 실습 문제 사용자로부터 여러 학생의 성적 정보를 입력받아 점수가 높은 순으로 등수를 부여하여 결과를 출력하는 프로그램을 구현한다. 단, 배열과 정렬 알고리즘을 활용하여 작성할 수 있도록 한다. Test105.java import java.util.Scanner;import java.io.IOException; public class Test105{public static void main(String[] args) throws IOException{Scanner sc = new Scanner(System.in);int n, i=1, j;boolean flag;// 인원 수 입력받기System.out.print(.. 2018. 6. 14.
JAVA_ Test104_ 정렬(Sort) 알고리즘 / 향상된 버블 정렬(Bubble Sort) Test104 정렬(Sort) 알고리즘 / 향상된 버블 정렬(Bubble Sort)※ 앞서 공부한 Selection Sort 나 Bubble Sort 의 성능은 같다. (반복의 횟수로 추정) 하지만, 향상된 Bubble Sort 는 대상 데이터의 구조에 따라 일반 Bubble Sort 나 Selection Sort 보다 성능이 좋다.※ 불필요한 추가 연산 (회전:반복)을 수행하지 않는다. Test104.java public class Test104{public static void main(String[] args){int[] a = {10, 50, 20, 33, 40};int pass, temp;boolean flag; System.out.print("Source Data : ");for (int n .. 2018. 6. 14.
JAVA_ Test103_ 정렬(sort) 알고리즘 / 버블 정렬(Bubble Sort) Test103 정렬(sort) 알고리즘 / 버블 정렬(Bubble Sort) ※ 향상된 for문 → forEach 구문for ( ②자료구조로부터꺼낸단일요소 : ①자료구조,배열 등){} Test103.java public class Test103{public static void main(String[] args){int[] a = {52, 42, 12, 62, 60};int i, j, temp; System.out.print("Source Data : ");for (int n : a)// a 배열 [0]부터 끝까지 n에 순차적용System.out.print(n + " ");System.out.println(); // Bubble Sort 구현for (i=1; i 2018. 6. 14.
JAVA_ Test102_ 정렬(sort) 알고리즘 / 선택정렬(Selection Sort) Test102 정렬(sort) 알고리즘 / 선택정렬(Selection Sort) ※ 정렬 : 데이터를 특정한 규칙(기준)에 맞게 순서대로 나열(오름차순, 내림차순)※ 정렬의 종류 : 선택 정렬, 버블 정렬, 삽입 정렬, 힙 정렬, 퀵 정렬, 쉘 정렬, ...※ 정렬은 리소스 부하가 심하니 꼭 필요한 경우에 사용한다. Test102.java public class Test102{public static void main(String[] args){int[] a = {52, 42, 12, 62, 60};int[][] b = {{52, 42, 12}, {62, 60, 70}}; int i, j, temp; System.out.print("Source Data : "); for (int n : a)// a 배열.. 2018. 6. 4.
728x90
728x90