목록전체 글 (226)
컴퓨터공학 💻 도서관📚

결론 : 상위 클래스, 하위 클래스(재정의)에 모두 있는 메서드는 실제 객체의 메서드가 호출된다.Customer vc = new VIPCustomer();
컴파일 타임(compile time)우리가 작성한 코드를 컴파일이란 과정을 통해 기계가 읽을 수 있는 기계어로 변환되는 과정 컴파일 에러 : 대표적으로 문법 오류 런 타임 (run time)컴파일 타임 이후 프로그래밍이 동작되는 시간 런타임 에러 : 실행이 되어야만 확인이 가능한 에러 즉, 컴파일 중에는 감지하지 못하는 에러들이다. 시간 순서 컴파일 타임 --> 런 타임 Java_컴파일 시점 VS 런타임 시점 Java_컴파일 시점 VS 런타임 시점컴파일 시점(compile time)이란 ? : 우리가 작성한 코드를 컴파일이란 과정을 통해 기계가 읽을 수 있는 형태로 변환되는 과정을 컴파일 타임이라고 한다. 즉, 개발자가 작성한 코드를 컴퓨터가 이해spyair.tisto..

인터페이스는 구현코드가 없기에 여러 개의 인터페이스를 한꺼번에 구현할 수 있지만자바에서 클래스는 가능하지 않다자바에서 이걸 하지 못하게 한 이유예시로 위와 같은 상황에서 각각의 a() 메서드가 다 재정의 되었다고 가정하면child 인스턴스가 a()메서드를 호출하면 누구의 a메서드를 호출해야 하는지 모호하다C++ 에서는 어느 클래스 거를 호출해라 라고 지정을 하면 되는데자바에서는 그런 모호성을 없앴기 때문에 단일 상속만 가능하다 다중 상속의 장점은 여러 개의 클래스를 상속 받으니까 하나의 클래스가 가지는 기능이 풍부해진다 즉, 여러 기능을 동시에 상속 받을 수 있다는 것이고, 단점은 모호성이 있다는 것이다. java도 지금은 조금 바껴서 기능들이 많이 추가되고 있지만 기존 처음 java의 설계 사상은..
상수 * 모든 변수는 상수로 변환 된다 ( public static final )double PI = 3.14;int ERROR = -999999999; 추상 메서드 * 선언된 모든 메서드는 추상 메서드 ( public abstract ) 디폴트 메서드 (자바 8 이후) * 구현을 가지는 메서드, 인터페이스를 구현하는 클래스들에서 공통으로 사용할 수 있는 기본 메서드 * default 키워드 사용 * (1)구현 코드를 가지고 , (2)인스턴스가 생성된 경우에만 사용할 수 있다.default void description() { // default 키워드 사용 System.out.println("정수 계산기를 구현합니다."); myMethod();} * 구현하는 클래스에서 재정의 ..

인터페이스와 다형성 * 하나의 인터페이스를 여러 객체가 구현하게 되면 클라이언트 프로그램은 인터페이스의 메서드를 활용하여 여러 객체의 구현을 사용할 수 있음 (다형성) 실무에서 중요한 것은 인터페이스를 설계하는 것이다어떻게 인터페이스를 설계를 해야 클라이언트 프로그램이 유용하게 쓸 수 있을까? 를 고민해야 한다. 패키지 : 소스의 계층 구도(하이라키)를 갖는 것실무에서 계층 구도를 어떤 식으로 관리를 하느냐에 많은 고민들을 한다처음 프로젝트를 설계할 때 나중에 관리하기 편하게 하기 위해 어느 소스를 어디다 둘 것인지 고민한다 인터페이스를 활용한 dao 구현해 보기 DB에 회원 정보를 넣는 dao(data access object)를 여러 DB 제품이 지원될 수 있게 구현함환경파일(db..

인터페이스가 하는 일 클래스나 프로그램이 제공하는 기능을 명시적으로 선언 ( 일종의 리모콘 ) 이 프로그램은, 이 클래스는, 이 모듈은, 이 객체는, 이거를 제공 한다라는 게 인터페이스의 명세가 돼 있는 거다 클라이언트가 있고 서버가 있는데 클라이언트 프로그램이 서버가 어떻게 구현되어 있는지를 다 알고 쓰는 경우들도 있지만 사실은 서버가 어떻게 구현되어 있는지 잘 모르고 쓰는 경우도 많이 있다. 클라이언트가 뭐만 보고 쓰냐면 서버는 이렇게 구현이 되어 있어라고 선언되어 있는 인터페이스가 있는 거다 그래서 클라이언트는 서버가 이걸 구현했구나 라는 거를 인터페이스만 보고 쓰는 거다 일종의 클라이언트 코드와의 ..
인터페이스모든 메서드가 추상 메서드로 선언된다 (public abstract)모든 변수는 상수로 선언된다 (public static final)public interface 인터페이스 이름{ // interface 라고 쓴다. public static final float pi = 3.14F; // 상수 public void makeSomething(); // 인터페이스의 모든 메서드는 추상 메서드}public class 클래스 이름 implements 인터페이스 이름{ // 위 인터페이스를 구현하는 클래스} 내가 public abstract 키워드를 넣지 않아도 모든 메서드는 public abstract로 컴파일 된다. 자바 8 부터는 디폴트 메서드(default me..

라이브러리와 프레임워크의 차이JDK(Java Development Kit) 는 라이브러리이고 개발자가 라이브러리를 가져다 쓸 때전반적인 프로그램의 흐름, 제어권은 프로그래머가 가지고 있다. Android 는 프레임워크이고 프레임워크를 사용하면 프로그램의 흐름이 다 정해져 있다프로그래머가 무슨 클래스를 넣으면 이 클래스가 어떻게 연동 될 거고 어떤 영향을 주게 되는지 다 정해져 있다.여기서 프로그래머가 하는 일은 Placehole 이라 하는 구멍들을 메꾸는 일을 한다. (추상 메서드 정의와 같은 일)여러 가지 생성 과정들이나 걔가 소멸되는 과정들이나 그 안에서 돌아가는 모든 일들은 정해져 있지만 거기에 들어가는 어떤 구체적인 기능들은 프로그래머가 한다템플릿 메서드추상 메서드나 구현된 메서드를 활용하여 ..