Backend/Java

· Backend/Java
java.lang: 자바가 기본으로 제공하는 라이브러리중 가장 기본이 되는 패키지이다. java.lang 패키지의 대표적인 클래스들Obejct: 모든 자바 객체의 부모 클래스String: 문자열Integer, Long, Double: 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것Class: 클래스 메타 정보System: 시스템과 관련된 기본 기능들을 제공 Object 클래스: 클래스에 상속 받을 부모 클래스가 없으면 묵시적으로 Object 클래스를 상속 받는다.공통 기능 제공다형성의 기본 구현 Object 클래스가 제공하는 기능객체의 정보를 제공하는 toString()객체의 같음을 비교하는 equals()객체의 클래스 정보를 제공하는 getClass()기타 등등 Object를 활용한 다형성의 한계Ob..
· Backend/Java
객체 지향 프로그래밍은 프로그램을 유연하고 변경 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 다형성의 본질클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경할 수 있다 OCP(Open-Closed Principle) 원칙Open for extension: 새로운 기능의 추가나 변경 사항이 생겼을 때, 기존 코드는 확잘할 수 있어야 한다.Closed for modification: 기존의 코드는 수정되지 않아야 한다.  전략패턴(Stragy Patter):전략 패턴은 알고리즘 클라이언트 코드의 변경 없이 쉽게 교체할 수 있다.    출처 - 김영한의 실전 자바 기본편
· Backend/Java
추상 클래스: 부모 클래스는 제공하지만, 실제 생성되면 안되는 클래스 추상 메서드추상 메서드는 선언할 때 메서드 앞에 추상이라는 의미의 abstract 키워들르 붙여주면 된다.추상 메서드가 하나라도 있는 클래스는 추상 클래스로 선언해야 한다.추상 메서드는 상속 받는 자식 클래스가 반드시 오버라이딩 해서 사용해야 한다. 순수 추상 메서드: 모든 메서드가 추상 메서드인 순수 추상 클래스는 코드를 실행할 바디가 전혀 없다.인스턴스를 생성할 수 없다.상속시 자식은 모든 메서드를 오버라이딩 해야 하낟.주로 다형성을 위해 사용된다. 인터페이스:자바는 순수 추상 클래스를 더 편리하게 사용할 수 있는 인터페이스라는 기능을 제공한다인터페이스의 메서드는 모두 public, abstract 이다.메서드에 public abs..
· Backend/Java
다형성의 핵심다형적 참조메서드 오버라이딩다형적 참조: 다형적 참조는 부모는 자식을 참조할 수 있다. 다형성과 캐스팅캐스팅: 특정 타입으로 변경하는 것업 캐스팅(upcasting): 부모 타입으로 변경다운 캐스팅(downcasting): 자식 타입으로 변경 캐스팅의 종류일시적 다운 캐스팅((Child) poly).childMethod(); 참고 - 캐스팅을 한다고 해서 타입이 변하는 것은 아니다. 해당 참조값을 꺼내고 꺼낸 참조값이 캐스팅 타입이 되는 것이다. 업캐스팅객체를 생성하면 해당 타입의 상위 부모 타입이 모두 생성되기 때문에 업캐스팅하려는 타입이 모두 메모리에 존재하여 안전하다. 따라서 캐스팅을 생략 가능 A a = new C(): A로 업케스팅B b = new B(): B로 업스케팅C c = n..
· Backend/Java
부모 클래스(슈퍼 클래스): 상속을 통해 자신의 필드와 메서드를 다른 클래스에 제공하는 클래스자식 클래스(서브 클래스): 부모 클래스로부터 필드와 메서드를 상속받는 클래스 상속과 메모리 구조상속 관계의 객체를 생성하면 그 내부에는 부모와 자식이 모두 생성된다.상속 관계의 객체를 호출할 때, 대상 타입을 정해야 한다. 이 때 호출자의 타입을 통해 대상 타입을 찾는다.현재 타입에서 기능을 찾지 못하면 상위 부모 타입으로 기능을 찾아서 실행한다. 기능을 찾지 못하면 컴파일 오류가 발생한다.상속과 메서드 오버라이딩메서드 오버라이딩(Overriding): 부모에게서 상속 받은 기능을 자식이 재정의 하는 것메서드 오버로딩: 메서드 이름이 같고 파라미터가 다른 메서드를 여러개 정의하는 것 메서드 오버라이딩 조건메서드..
Coffebara
'Backend/Java' 카테고리의 글 목록 (8 Page)