일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 네트워크
- Git
- 다운캐스팅
- static
- 파비콘에러
- 스프링시큐리티
- 자바
- 엔티티설계
- 레포지토리설계
- 업캐스팅
- 프로젝트
- 생성자
- 기초
- git commit취소
- http
- java
- qclass
- 한번에insert하기
- 웹스토리지 사용법
- JPA
- 메소드
- MySQL
- 0으로변환
- java기초
- 스프링부트
- 웹동작방식
- 형변환
- 오버라이딩
- 코린이
- 상속
- Today
- Total
목록분류 전체보기 (62)
딱콩이의 봄
✔️추상 클래스는 하나 이상의 추상 메소드를 갖는 클래스입니다. ✔️상속 관계에서 부모 클래스의 역할을 갖기 위한 클래스이며 추상 메소드와 일반 메소드를 가질 수 있습니다. ✔️추상 메소드는 메소드의 바디가 없는 메소드이며 자식 클래스에서 재정의 하도록 하기 위한 메소드 입니다. ✔️추상 클래스는 new 동적 할당자를 통해 인스턴스 객체를 만들 수 없습니다. public abstract class Shape { private String type; public Shape(String type) { //자식 클래스가 호출하는 생성자 this.type = type; } public abstract void draw(); //추상 메소드 } public class AbstractAssist { public s..
✔️다형성은 하나의 객체가 다양한 형태로 처리될 수 있는 특성을 의미합니다. ✔️다형성을 구현하기 위해서는 상속, 재정의 메소드, 그리고 객체간의 형변환(업 캐스팅) 세가지 조건이 필요합니다. Shape[] shapes = new Shape[5]; //방 5개짜리 배열변수 선언 shapes[0] = new Rectangle();//0번방 자식클래스 Rectangle shapes[1] = new Ellipse();//1번방 자식클래스 Ellipse shapes[2] = new Line();//2번방 자식클래스 Line for(Shape shape : shapes) { shape.draw(); //shape 타입의 draw를 호출 } 🧐Reference https://youtu.be/GF6JUyFe3jQ
✔️업 캐스팅이 되어있을 때 자식 클래스가 갖고 있는 인스턴스 메서드는 호출할 수 없습니다. ✔️부모 클래스 타입의 변수로 참조하고 있는 자식 인스턴스 객체의 메서드를 호출하기 위해서는 down-casting이 이루어져야 합니다. public class InheritanceAssist{ public static void main(String[] args) { Shape shape = new Rectangle("Rectangle", 100); shape.getType(); shape.draw(); } } 💡오버라이딩 된 메서드가 있다라면, 설령 부모 모습으로 업 캐스팅되었을지라도, 오버 라이딩된 메서드는 자식 클래스의 오버 라이딩되어있는 메서드가 호출된다! 위의 코드에서 shape.draw(); 는 부모 ..
✔️상속 관계에서 자식 클래스가 부모 클래스 타입으로 참조되는 것이 허용되며 이를 up-casting이라 합니다. ✔️한번 부모 클래스 타입의 클래스로 참조가 이루어진 이후 다시 자식 클래스로 참조하는 것을 down-casting 이라 합니다. public class Shape { public void draw() { System.out.println("Drawing Shape"); } } public class Rectangle exteds Shape{ @Override public void draw() { System.out.println("Drawing Rectangle"); } } public class Ellipse extends Shape{ @Override public void draw() ..
✔️오버 라이딩은 부모 클래스의 메서드를 자식 클래스가 확장하거나 다시 정의하는 것을 의미합니다. ✔️메소드메서드 재정의를 구현하는 방법은 부모 클래스로부터 상속받은 메서드의 반환 타입, 메서드명, 파라미터를 동일하게 하여 자식 클래스에서 정의하고, 메서드의 바디 즉 기능이 수행되는 부분이 확장이 되거나 변경이 됩니다. ✔️자식 클래스가 부모 클래스의 메소드를 재정의 할 때 접근 제한자의 범위는 넓거나 같아야 합니다. 부모클래스 자식클래스 private 재정의 불가 protected protected, public default default, protected,public public public public class Shape { public void draw() { System.out.printl..
💡생성자 호출 ✔️상속 관계에서 자식 클래스를 인스턴스화 하면 부모 클래스의 객체도 인스턴스 화가 진행됩니다. ✔️자식 클래스의 객체가 인스턴스화 되기 위해서는 먼저 부모 클래스의 객체가 인스턴스화 되어야 합니다. 따라서, 상속 구조에서 가장 상위의 부모 클래스부터 차례로 인스턴스화가 진행됩니다. 💡Art 클래스 public class Art { public Art() { System.out.println("Art Constructor"); } } 💡💡Art 클래스를 상속 받은 Drawing 클래스 public class Drawing extends Art { public Drawing() { System.out.println("Drawing Constructor"); } } 💡💡💡Drawing 클래스를..
✔️상속은 연관 있는 클래스들에 대해 공통적인 구성요소를 정의하고, 이를 대표하는 클래스를 정의하는 것을 의미합니다. ✔️상속 관계는 "is a" 관계를 의미하며 extends 키워드를 이용해 상속 관계를 정의합니다. ✔️상속 관계에서 상속을 받는 클래스를 sub class, derived class, child class, extended class 라 합니다. ✔️상속 관계에서 상속을 제공하는 클래스를 super class, base class, parent class 라 합니다. public class Manager extends Employee { //필드 및 메소드 } ✔️자식클래스는 부모 클래스를 상속받아 부모 클래스의 모든 자원(속성, 메서드)을 사용할 수 있습니다. ✔️자식 클래스는 부모클..
사용자 정의 상수 ✔️정적 필드에 final 키워드를 적용하여 값을 변경할 수 없도록 하는 것으로 사용자 정의 상수를 정의할 수 있습니다. ✔️사용자 정의 상수는 정적 필드나 메서드의 접근과 마찬가지로 클래스 이름을 통해 접근하여 사용합니다. ✔️사용자 정의 상수는 접근제한자의 범위에 따라 공유하는 범위가 결정됩니다. static method ✔️정적 메소드는 static으로 선언된 메서드로써 인스턴스 없이(객체 생성 없이)도 호출할 수 있습니다. 정적 메소드는 인스턴스 필드에는 접근할 수 없고, 정적 필드에만 접근할 수 있습니다. 정적 메소드는 객체를 통해 사용될 수 있지만, 반드시 클래스명과 함께 사용하기 바랍니다. ✔️예시 class Employee { private static int nextId..