자바 Java/문법 - 객체 지향
-
메소드 재정의 - @Override, super자바 Java/문법 - 객체 지향 2022. 1. 15. 00:05
1. @Override 부모 클래스의 상속 메소드를 수정하여 자식 클래스에서 재정의 할 때 부모 클래스와 동일한 시그니처(public void ..)를 가졌는지 검사 접근제한을 더 느슨하게 수정할 수 있지만 더 강하게는 하지 못한다 public -> private (x) defalut -> public (o) 정확한 메소드의 재정의를 위해 사용 public class Calculator { double calcCircleArea(double r) { System.out.println("Calculator 객체의 calcCircleArea 메소드 실행"); return 3.141592 * r * r; } } public class CalcComputer extends Calculator { @Overrid..
-
상속 - 부모 생성자 호출(super)자바 Java/문법 - 객체 지향 2022. 1. 14. 23:53
상속받는 자식객체 생성할 때는 부모 객체부터 생성 후 자식객체 생성 super(매개값, ... ) -> 매개값과 동일한 타입, 개수, 순서 맞는 부모생성자 호출. 부모 생성자가 없으면 오류가 발생하며 반드시 자식 생성자의 첫줄에 위치해야 한다 부모 클래스에 생성자가 없다면 필수로 작성해줘야 함 부모생성자 작성 public class People { public String name; public String ssn; public People(String name, String ssn) { this.name = name; this.ssn = ssn; } } 자식생성자에 super로 부모생성자 호출 public class PeopleStudent extends People { private int Stude..
-
상속 - 기본자바 Java/문법 - 객체 지향 2022. 1. 7. 10:32
public class cellPhone { String model; String color; void powerOn() { System.out.println("전원을 켭니다"); } void powerOff() { System.out.println("전원을 끕니다"); } void sendMessage(String message) { System.out.println("Me: " + message); } void receiveMessage(String message) { System.out.println("Person: " + message); } } public class cellPhoneDmb extends cellPhone { int channel; cellPhoneDmb(String model,..
-
싱글톤(Singleton Pattern) - 객체를 하나만 생성자바 Java/문법 - 객체 지향 2022. 1. 5. 17:13
싱글톤 패턴: 프로그램 내부에서 객체를 단 1개만 생성시킬 수 있도록 클래스 제작 만드는법: 1. 클래스 자신의 타입으로 정적 필드 선언 -> 자신의 객체를 생성해 초기화하고, private 접근 제한자를 붙여서 필드 값 변경 불가하도록 2. 외부에서 new 연산자로 생성자를 호출할 수 없도록 막기 -> private을 생성자 앞에 붙이기 3. 외부에서 호출할 수 있는 정적 메소드인 getInstance() 선언 -> 정적 필드에서 참조하고 있는 자신의 객체 리턴 public class Singleton { private static Singleton s = new Singleton(); private Singleton() {} static Singleton getInstance() { return s;..
-
메소드 오버로딩자바 Java/문법 - 객체 지향 2022. 1. 4. 14:27
클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것 하나의 메소드 이름으로 다양한 매개값 받기 위해 메소드 오버로딩을 함 오버로딩의 조건: 매개변수의 타입, 개수, 순서가 달라야함 public class Calculator { void powerOn() { System.out.println("전원을 켭니다"); } int plus(int a, int b) { int result = a + b; return result; } double divide(int a, int b) { double result = (double) a / (double) b; return result; } void powerOff() { System.out.println("전원을 끕니다"); } double calcRectAre..