본문 바로가기

Java68

[인프런] super super - 부모 참조부모와 자식의 필드명이 같거나 메서드가 오버라이딩 되어 있으면, 자식에서 부모의 필드나 메서드를 호출할 수 없다. 이때 super 키워드를 사용하면 부모를 참조할 수 있다. super는 이름 그대로 부모 클래스에 대한 참조를 나타낸다.public class Parent { public String value = "parent"; public void hello() { System.out.println("Parent.hello"); }}public class Child extends Parent { public String value = "child"; @Override public void hello() { System.ou.. 2024. 5. 27.
[인프런] 상속과 접근 제어 UML 표기법+ : public# : protected~ : default- : private접근 제어자의 종류private : 모든 외부 호출을 막는다.default : 같은 패키지 안에서 호출은 허용한다.protected : 같은 패키지 안에서 호출은 허용한다. 패키지가 달라도 상속 관계의 호출은 허용한다.public : 모든 외부 호출을 허용한다. public class Parent { public int publicValue; protected int protectedValue; int defaultValue; private int privateValue; public void publicMethod() { System.out.println("Parent.p.. 2024. 5. 27.
[인프런] 상속과 메서드 오버라이딩 부모 타입의 기능을 자식에서는 다르게 재정의 하고 싶을 수 있다. 부모에게서 상속 받은 기능을 자식이 재정의 하는 것을 메서드 오버라이딩이라 한다. public class Car { public void move() { System.out.println("차를 이동합니다."); } public void openDoor() { System.out.println("문을 엽니다."); }}public class ElectricCar extends Car { @Override public void move() { System.out.println("전기차를 빠르게 이동합니다."); } public void charge() {.. 2024. 5. 27.
[인프런] 상속 public class ElectricCar { public void move() { System.out.println("차를 이동합니다."); } public void charge() { System.out.println("충전합니다."); }}public class GasCar { public void move() { System.out.println("차를 이동합니다."); } public void fillUp() { System.out.println("기름을 주유합니다."); }}public class CarMain { public static void main(String[] args) { .. 2024. 5. 27.
[인프런] final 변수와 상수 final 키워드는 이름 그대로 끝이라는 뜻이다. 변수에 final 키워드가 붙으면 더는 값을 변경할 수 없다. final은 class, method를 포함한 여러 곳에 붙을 수 있다.지역변수에  final 할당public class FinalLocalMain { public static void main(String[] args) { // final 지역 변수 final int data1; data1 = 10; // 최초 한번만 할당 가능 // data1=20; // 컴파일 오류 }}final을 지역변수에 설정할 경우 최초 한번만 할당할 수 있다. 이후에 변수의 값을 변경하려면 컴파일 오류가 발생한다.final을 지역변수 선언 시 바로 초기화.. 2024. 5. 27.
[인프런] static 메서드 정적 메서드는 객체 생성 없이 클래스에 있는 메서드를 바로 호출할 수 있다. 하지만 정적 메서드는 언제나 사용할 수 있는 것은 아니다.정적 메서드 사용법static 메서드는 static 만 사용할 수 있다.클래스 내부의 기능을 사용할 때, 정적 메서드는 static이 붙은 정적 메서드나 정적 변수만 사용할 수 있다.클래스 내부의 기능을 사용할 때, 정적 메서드는 인스턴스 변수나, 인스턴스 메서드를 사용할 수 없다.반대로 모든 곳에서 static을 호출 할 수 있다.정적 메서드는 공용 기능으로 접근 제어자만 허락한다면 클래스를 통해 모든 곳에서 static을 호출할 수 있다. public class DecoData { private int instanceValue; private static i.. 2024. 5. 26.