[JAVA] 객체지향 - 추상클래스, 추상메서드
·
Back-End/Java
[작성일: 2023. 01. 29] 목차 추상 클래스(abstract class)미완성 설계도(부족한 부분이 있음.)미완성 메서드를 갖고 있는 클래스클래스 앞에 abstract를 붙여줘야 함. (추상 메서드가 존재한다고 추론 가능)다른 클래스 작성에 도움을 주기 위한 것. 인스턴스 생성 불가.코드의 관리에 용이함.상속을 받으며 추상클래스가 구체적이게 됨. (단계별로 관리 가능)abstract class Player { // 추상클래스 abstract void play(int pos); // 추상메서드(몸통{}이 없는 미완성 메서드) abstract void stop(); // 추상메서드}Player p = new Player(); // 에러. 추상클래스의 인스턴스 생성 불가 상속을 통해 추상 메서드를..
[JAVA] 객체지향 - 참조변수의 형변환
·
Back-End/Java
[작성일: 2023. 01. 29] 목차 참조변수의 형변환사용할 수 있는 멤버의 개수를 조절하는 것(값이 달라지는 것이 아님) ➡ 리모콘을 변경하는 것조상 자손 관계의 참조변수는 서로 형변환 가능 멤버의 갯수를 늘리는 형변환은 자동 형변환 되지 않으므로 형변환 생략 불가참조변수가 가리키는 실제 객체가 중요함.class Ex7_7 { public static void main(String[] args) { Car car = null; // 객체가 없어도 형변환에는 문제가 없으나 실행시 에러 // 실제 인스턴스가 무엇인지 중요함 FireEngine fe = new FireEngine(); FireEngine f2 = null; fe.water(); car = fe; car.wate..
[JAVA] 객체지향 - 다형성
·
Back-End/Java
[작성일: 2023. 01. 29] 목차 다형성(Polymorphism)여러 가지 형태를 가질 수 있는 능력조상 타입 참조변수로 자손 타입 객체를 다루는 것자손 타입의 참조변수로 조상 타입의 객체를 가리킬 수는 없음.int i = 10;double d = i;double b = 10.34;int j = b; // (X) 넓은 곳에서 좁은 곳으로 갈 수 없음.INT J = (int)b; // 가능.class Tv { boolean power; int channel; void power() { power = !power; } void channelUp() { ++channel; } void channelDown() { --channel; }}class SmartTv extends Tv { /..
[JAVA] 객체지향 - 오버라이딩
·
Back-End/Java
[작성일: 2023. 01. 28] 목차 오버라이딩(Overriding)상속받은 조상의 메서드를 자신에게 맞게 변경하는 것부모 클래스의 메서드를 자식 클래스가 변경해서 정의하는 것class Point { int x; int y; String getLocation() { return "x: " + x + ", y:" + y; }}class Point3D extends Point { // 상속 int r; String getLocation() { // 오버라이딩 return "x:" + x + ", y:" + y + ",r:" + r; } // 선언부는 변경 불가, 내용(구현부)만 변경 가능}public class OverrideTest { public static ..
[JAVA] 객체지향 - 제어자, 접근 제어자, 캡슐화
·
Back-End/Java
[작성일: 2023. 01. 28] 목차 제어자(Modifier)클래스와 클래스의 멤버 (멤버 변수, 메서드)에 부가적인 의미를 부여하는 것접근 제어자 public, protected, (default), private그 외            static, final, abstract, native, transient, synchronized, volatile, sticftp 하나의 대상에 여러 제어자를 같이 사용 가능접근 제어자는 하나만 사용 가능public class ModifierTest { public static final int WIDTH = 200; // 제어자 3개 사용 // 순서는 상관없으나 대부분 접근제어자를 제일 앞에 사용함. public static void main..
[JAVA] 객체지향 - import
·
Back-End/Java
[작성일: 2023. 01. 27] 목차 import문클래스를 사용할 때 패키지 이름을 생략할 수 있음.컴파일러에게 클래스가 속한 패키지를 알려줌.이클립스 단축키: ctrl + shift + Ojava.lang 패키지의 클래스는 기본 패키지이기 때문에 import 하지 않고도 사용할 수 있음.String, Object, System, Thread, ...class ImportTest { java.util.Date today = new java.util.Date(); // ...}⬇import java.util.Date;class ImportTest { Date today = new Date();}     import문 선언import 패키지명.클래스명;  또는import 패키지명.*; (*은 모든 ..