BackEnd/Java 60

[Java]다형성 인터페이스

1. 인터페이스란 ? 상수형 필드와 추상 메소드만을 작성할 수 있는 추상 클래스의 변형체 - 추상 클래스 처럼 객체 생성 X - 부모 타입 참조 변수로 사용 O → 다형성 업캐스팅 + 동적 바인딩 2. 인터페이스의 효과 1) 클래스 간의 접점을 만들 수 있다. 2) 극한의 추상화를 통해서 유연한 코딩이 가능 3. 인터 페이스의 기본 작성법 필드 → 무조건 public static final(공유 가능 상수) 메서드 → 무조건 public abstract(누구든지 상속 받아서 오버라이딩 가능) #예제  [Calculator]public interface Calculator { public static final double PI = 3.14; // public static final을 생략해도 // 인..

BackEnd/Java 2024.08.12

[Java]다형성 추상클래스

추상 클래스란 ? - 몸체 없는 메소드를 포함한 클래스 (미완성 설계도) - 객체로 만들면 안되는 클래스 - 클래스 선언부에 abstract 키워드 사용 *일반 필드/메서드 + 추상 메서드가 합쳐진 모습 → 상속 받은 자식 객체 생성 시 내부에 일반 필드/메서드가 정상적으로  구현이 되어야 되기 때문에 추상 클래스도 생성자가 필요하다!![접근제한자] abstract class 클래스명 {} 추상 메서드란? - 몸체 없는 메소드 - 공통된 기능의 이름을 갖지만 정의할 수 없는 메서드 -추상 메소드의 선언부에 abstract 키워드 사용 - 상속 받은 자식 클래스에서 해당 메서드를 정의하도록 강제함 → 오버라이딩 강제화[접근제한자] abstract 반환형 메소드명(자료형 변수명); #예제[Parent] An..

BackEnd/Java 2024.07.31

[Java]객체 배열(Object_Array)

1. 객체 배열 정의 객체를 참조하는 참조형 변수를 묶음으로 다루는 것 [작성법]클래스명[] 변수명 = new 클래스명[크기]; ex)Academy[] arr = new Academy[3]; new Academy[3] : heap 영역에 Academy "참조형 변수" 3칸 짜리 묶음 배열  → 각 칸이 Academy "참조형 변수"   → 각 칸이 Academy 객체 주소를 저장해서 참조package dto;// DTO(Data Transfer Object) : 데이터 전달용 객체// - 전달될 데이터를 묶어서 관리하는 객체public class MemberDTO { // 필드 private String memberId; private String memberPw; private String member..

BackEnd/Java 2024.07.31

[Java]다형성 객체 타입에 따른 업/다운 캐스팅

instanceof 연산자 참조변수명 instanceof 클래스명 참조하고 있는 객체가 클래스명 객체가 맞는 지 확인 (true / false)  - instanceof는 참조하고 있는 객체가 상속하고있는 객체도 같이 확인하기 때문에  자식 객체를 참조하는 변수에 부모 타입을 검사하면 true가 나온다!! ex) Parent p = new Child(); // 업 캐스팅 p instanceof Child -> p가 참조하는 객체가 Child야? truep instanceof Parent-> p가 참조하는 객체가 Parent야? true 주의 사항을 잘 이용하면 Parent, Child 클래스 상속 관계가 맞는지 확인하는 용도로도 사용 가능!  Object 모든 클래스(객체)의 최상위 부모 Object[]..

BackEnd/Java 2024.07.31

[Java]다형성 (Polymorphism)

1. 다형성이란 ?- 객체 지향 언어의 특징 중 하나로 ‘다양한 형태를 갖는다’라는 뜻으로하나의 행동으로 여러 가지 일을 수행하는 개념.- 상속을 이용한 기술로 부모 클래스 타입 참조변수 하나로상속 관계에 있는 여러 타입의 자식 객체를 참조할 수 있는 기술 2. 클래스 형변환업 캐스팅(Up Casting) (자식→ 부모)다운 캐스팅(Down Casting) (부모→ 자식)- "부모" 참조 변수 = '자식' 객체- 참조하는 자식 객체가 부모 객체로 변함* 부모로부터 상속받은 멤버만 참조 가능ex)Car  c = new Sonata();→ Sonata 클래스는 Car 클래스의 후손→ Sonata 클래스형에서 Car클래스형으로 바뀜- 업 캐스팅 상태에서(부모 참조=자식 객체)   참조 변수의 자료형을 자식 객..

BackEnd/Java 2024.07.31

[Java]상속(Inheritance) 오버라이딩

#예제[Parent]package dto;/** * 부모 역할 클래스 */public class Parent extends Object { protected String lastName = "홍"; // 명시적 초기화 private String address = "서울시 중구 남대문로 120"; private int money = 100_000_000; // _ : 자릿수 구분(해석 X) private String car = "그랜져"; // 기본 생성자 public Parent() { System.out.println("부모 - 기본 생성자로 객체 생성"); } // 매개 변수 생성자(Alt + shift + s -> o) public Parent(Strin..

BackEnd/Java 2024.07.31

[Java]상속(Inheritance)

1. 상속의 정의 다른 클래스가 가지고 있는 멤버(필드, 메서드)들을 새로 작성할 클래스에서 직접 만들지 않고 상속을 받음으로써 새 클래스가 자신의 멤버처럼 사용할 수 있는 기능 1) 목적 클래스의 재사용, 연관된 일련의 클래스들에 대한 공통적인 규약 정의 2) 방법 클래스 간의 상속 시에는 extends 키워드 사용 [표현식]public class Academy extends Company {} 자식 부모 3) 장점 - 코드 길이 감소     → 부모 필드/메서드를 자식이 안써도 사용 가능      - 재사용성 증가     →  super(), super 참조변수를 이용해       자식이 부모코드를 호출해서 자식 코드 길이 감소         - 공통적인 ..

BackEnd/Java 2024.07.31