일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- jvm
- 백준
- 프로그래밍
- 알고리즘
- 백준 알고리즘
- 예외처리
- BufferedWrite
- HTML
- 소수판정
- 연결된 예외
- 재귀호출기본
- lang package
- class
- 객체지향
- 자료구조
- LANG
- bubble-sort
- java
- 형변환 연산자
- try&catch
- JSP
- OOP
- 현대암호
- 클래스 패스
- 자동 형변환
- 2884
- 객체
- 디렉티브
- 암호론
- 공개키 암호
- Today
- Total
목록Java/OOP (18)
코드일기장

추상클래스 추상클래스는 미완성 클래스라고 보면 된다. 말 그대로 완성되지 않은 클래스이다. abstract class Game{ //추상클래스(미완성 클래스) abstract void play(int pos); //추상 메서드 (몸통 {}이 없는 미완성메서드) abstract int score(); } public class ArrayListEx1 { public static void main(String[] args)throws IOException { Game g = new Game(); } } main메서드에 Game객체를 생성한다면 에러가 날 것이다. 추상 클래스는 추상클래스만으로 객체를 생성할 수 없다. 추상클래스의 용도는 다른 클래스에게 영향을 주기 위함이다. 추상클래스는 상속을 통해 미완성된..

instanceof 연산자는 객체 타입을 확인하는 연산자이다. 그리고 참조변수의 형변환 가능 여부 확인에 사용한다. 가능하면 true를 반환해준다. instanceof의 왼쪽에는 참조변수를 오른쪽에는 타입(클래스명) 피연산자를 위치한다. 다시 말해 instanceof 연산결과 true가 나온다면 참조변수가 검사한 타입으로 형변환 가능하다는 것이다. public class TimeSe { public static void main(String[] args) { Parent p = new Parent(); Child c = new Child(); System.out.println(p instanceof Child); //false System.out.println(p instanceof Parent); //..

- 사용할 수 있는 멤버의 개수를 조절하는 것 형변환이 가능할 때는 조상 자손 관계의 참조 변수는 서로 형 변환 가능 (서로 상속관계에 있는 타입 간의 형 변환만 가능) 자손 타입에서 조상 타입으로 형변환하는 경우, 형변환 생략 가능 자손 타입-> 조상 타입 (Up-casting) :형변환 생략 가능 조상 타입-> 자손 타입(Down-casting): 형변환 생략 불가 public class OOP { public static void main(String[] args) { dog d = new dog(); animals a = (animals)d; //Up-casting조상인 animals타입으로 형변환 (생략가능) animals a= d dog d2 = (dog)a;//Down-casting자손인 d..

다형성(polymorphism) 여러 가지 형태를 가질 수 있는 능력 조상 타입 참조 변수로 자손 타입 객체를 다루는 것 Parent p = new Parent(); //타입일치 Child c = new Child(); //타입일치 Parent p2 = new Child(); //타입불일치 위 3행 코드처럼 조상 타입 참조 변수로 자손 타입 객체를 다루는 것이 가능하다. (참고로 Child는 Parent에게 상속받았다.) class MainClass{ public static void main(String[] args) { Parent p = new Parent(); //타입일치 Child c = new Child(); //타입일치 Parent p2 = new Child(); //타입불일치 } } cla..

접근 제어자는 맴버 또는 클래스에 사용된다. 접근 제어자의 역할은 해당하는 맴버 또는 클래스를 외부에서 접근하지 못하도록 제한을 해준다. 접근 제어자는 4가지이다. private 같은 클래스 내에서만 접근 가능하다. (default) 같은 패키지 내에서만 접근 가능하다. (참고로 default는 접근제어자를 따로 안 적는다. 접근제어자의 기본값이다.) protected 같은 패키지와 다른 패키지의 자손 클래스에서 접근 가능하다. public 접근 제한이 없다. 접근제어자 범위를 나열해보면 public> protected>(default)>private 왼쪽이 범위가 넓은 쪽이다. 제어자 같은 클래스 같은 패키지 다른 패키지의 자손클래스 전체 public O O O O protected O O O (def..

제어자 제어자(modifier)는 클래스, 메서드, 변수의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 제어자의 종류는 크게 2가지이다. 접근제어자와 그 외의 제어자로 나뉜다. 접근 제어자 public, protected, (default), private 그 외 static, final, abstract, native, transient, synchronized, volatile, stricffp 하나의 대상에 제어자를 여러개 사용할 수 도 있다. (단, 접근 제어자는 반드시 하나여야 한다.) public static final int value=5; 위 코드는 제어자를 3개 사용했다. (접근 제어자 1+ 그 외 제어자 2) 이처럼 하나의 대상에 꼭 하나의 제어자만 사용할 수 있는 게 아니다. 위..

패키지 - 서로 관련된 클래스의 묶음 - 클래스는 클래스 파일(*. class), 패키지는 폴더. 하위 패키지는 하위 폴더 - 클래스의 실제 이름은 패키지를 포함한 이름이다. ex) java.lnag.String - rt.jar는 클래스들을 압축한 파일, Java9부터 용량 문제로 사라졌다. (참고로 jar파일은 jar.exe로 압축을 풀 수 있다.) 패키지 선언 - 패키지는 소스파일의 첫 번째 문장으로 단 한번 선언한다. - 같은 소스 파일의 클래스들은 모두 같은 패키지에 속한다. - 패키지 선언이 없다면 클래스들은 이름없는 패키지(default package)에 속하게 된다. package Testpackage; public class Main { public static void main(Strin..