Computer Science59 [JAVA] 제너릭이란? "인터페이스의 한계" 인터페이스를 통해 공통 기능을 가지는 클래스를 구별하지 않고 사용할 수 있다. 또한 슈퍼 클래스의 역할을 하고, 가상 함수 동적 바인딩을 통해 다형성을 가진다. 하지만 만약 구체 클래스를 통해 각 클래스를 구별해야 할 경우엔 어떻게 해야 할까? 다운 캐스팅을 통해 구체 클래스를 구별해야한다. 다운 캐스팅의 문제점 1) 컴파일러가 다운 캐스팅의 오류를 발견하지 못한다. 2) 실행 시 타입이 맞지 않으면 TypeCastException 오류를 발생시킨다. 3) 실행 시 타입을 검사하는 instanceof 메서드는 매우 비싼 연산이다. 4) 잦은 다운 캐스팅 자체가 가독성이 저하된다. 위와 같은 다운 캐스팅의 문제점을 가지기 때문에 우리는 "제너릭"이 필요한 것이다. 제너릭이란? : 클래.. 2020. 11. 3. [JAVA] 추상화란? 추상화란? : 소프트웨어에서 구체적이고 개별적인 것이 아니라 "개념"이나 "표준"과 같은 추상화된 코드를 작성하여 재사용성을 높이는 것 - 상속 : 공통부분을 뽑아서 슈퍼 클래스로 만드는 것이 상속 - 인터페이스 : 상속에서 한걸음 더 나아가 개념(기능)만을 추출 예를 들어, Item, User, Order 가 존재하고, 각 객체 클래스의 코드 재사용을 위한 공통 부분(readAll, printAll, matches 등)을 뽑아서 만든 것이 Manager 클래스이다. 상속은 다중 상속이 불가하므로 Manager 클래스의 객체 요소들을 만들어 Item, User, Order 클래스들을 관리하는데, 각 클래스 간의 이용을 쉽게 이용하기 위해 Manageable 인터페이스를 사용하여 "기능"들만 추출한다. M.. 2020. 10. 23. [JAVA] 인터페이스란? (+서점 구현하기) 인터페이스란? : 변수 선언에 사용할 수 있는 타입(기본 타입/클래스/인터페이스/enum) 클래스와 달리 메서드 선언만 가짐 주로 인터페이스는 ~able(~할 수 있는)으로 끝난다. 인터페이스 역할 : 클래스들의 표준과 같은 역할 표준만 정하면 실제 클래스는 그에 맞게 끼워 넣음 서점에서 판매하는 객체 클래스가 되려면? 1) 인터페이스를 구현 2) ArrayList에 저장 3) 객체마다 read()/print()/matches() 메서드가 중복되므로 interface에 넣어준다. // Manageable 인터페이스 interface Manageable{ public void read(Scanner s); public void print(); public boolean matches(String kwd);.. 2020. 10. 6. [JAVA] 상속이란? (+ 서점 구현하기) 서점 프로그램에서 기준이 되는 Book 클래스에서 어떠한 기능들을 추가로 상속할 것인가? 1) Ebook 클래스를 만들어 Book 클래스를 상속 2) Appendix 클래스를 만들어 Book 클래스를 상속 추가로 이번 서점 프로그램 구현에는 파일을 통해 입력을 할 것이다. 파일 입력 메서드 // BookStore 클래스의 openFile(String filename) 메서드 Scanner openFile(String filename) { Scanner filein = null; try { filein = new Scanner(new File(filename)); }catch(IOException e) { System.out.printf("파일을 열수없습니다. - %s", filename); System... 2020. 10. 6. [JAVA] 변수와 메서드 변수의 비교와 지정 - 기본 타입 변수 - 객체 타입 참조 변수 - equals과 ==의 차이 변수의 종류 ① 기본 타입 값 변수 : 변수마다 메모리를 따로 가짐 변수 = 값 = 메모리 ② 객체 참조 변수 : 변수는 객체를 가리키는 참조이다. new를 해서 사용하여 생긴 친구를 어딘가 저장하여 이것을 참조하는 것임. 객체 타입 변수의 비교 ① == : 참조가 같은 지를 비교한다. ② equals() : 값이 같은 지를 비교한다. (String 변수의 비교) String color1= "red"; String color2 = "yellow"; String color3 = "r"; color3 += "ed";// color3 = "red"; if(color1 == color3) // false if(colo.. 2020. 9. 11. [JAVA] 자바 기본 자바 프로그램이 실행되는 방식 1) .java 파일이 컴파일 되면 .class파일이 된다. 2) byte 코드(실행코드)로 바뀐다. 3) VM은 byte 코드를 실행시킨다. 자바 프로그램의 구조 public class MyClass{// 다른 곳에서 실행 가능, 메인 클래스 int n = 10; // 클래스 필드(전역변수) void process1(){// static을 안붙일 경우, 메인 메서드에서 객체 생성 후에 사용할 수 있다. } public static void main(String[] args){// 바로 호출할 수 있는 void 자료형 메서드 System.out.println(" .... ");// sysout 치고, ctrl+space하면 자동 생성 } } - static 메서드는 바람직하.. 2020. 9. 2. 이전 1 ··· 6 7 8 9 10 다음