전체 글157 [인프런] 추상 클래스 추상 클래스추상 클래스는 이름 그대로 추상적인 개념을 제공하는 클래스이다. 따라서 실체인 인스턴스가 존재하지 않는다.대신 상속으로 사용되고, 부모 클래스 역할을 담당한다.추상 클래스는 클래스를 선언할 때 앞에 추상이라는 의미의 abstract 키워드를 붙여주면 된다.추상 클래스는 기존 클래스와 완전히 같으나, new를 사용해 직접 인스턴스를 생성하지 못하는 제약이 추가된 것이다. 추상 메서드부모 클래스를 상속 받는 자식 클래스가 반드시 오버라이딩 해야 하는 메서드를 부모 클래스에 정의할 수 있다.이를 추상메서드라고 한다. 추상메서드는 추상적인 개념을 제공하는 메서드로 실체가 존재하지 않고, 메서드 바디가 없다.추상 메서드는 선안할 때 메서드 앞에 abstract 키워드를 붙인다.추상 메서드가 하나라도 .. 2024. 5. 28. [인프런] 다형성과 메서드 오버라이딩 오버라이딩 된 메서드가 항상 우선권을 가진다. 기존 기능을 덮어 새로운 기능을 재정의 한다는 뜻의 오버라이딩이다.// 부모 변수가 자식 인스턴스 참조Parent poly = new Child();System.out.println("Parent -> Child");System.out.println("value = " + poly.value); // 변수는 오버라이딩Xpoly.method(); // 메서드 오버라이딩poly변수는 Parent 타입이므로 poly.value, poly.method( )를 호출하면 Parent타입에서 기능을 찾아서 실행한다.따라서 poly.value는 Parent타입에 있는 value값을 읽는다.poly.method( )는 Parent 타입에 있는 method( )를 실행하려고.. 2024. 5. 28. instanceof 프로그래밍에서 다형성은 하나의 객체가 여러 타입의 특성을 가질 수 있음을 의미한다. 자바에서는 이를 통해 하나의 참조 변수로 여러 타입의 객체를 참조할 수 있다. 이런 유연성은 객체 지향 프로그래밍의 효율성을 크게 향상시킨다. 그러나 때로는 참조하고 있는 구체적인 객체의 타입을 알아야 할 필요가 있다. 이럴때 instanceof를 사용한다 !instanceof의 역할 주어진 객체가 특정 클래스나 인터페이스의 인스턴스인지 여부를 확인하는데 사용된다. 이 연산자는 참조형 변수가 실제로 참조하고 있는 객체의 타입을 확인할 때 매우 유용하다.안전한 다운캐스팅다운캐스팅을 수행하기 전에 먼저 instanceof를 사용해서 원하는 타입으로 변경이 가능한지 확인한 다음에 다운캐스팅을 수행하는 것이 안전하다. 다운캐스팅.. 2024. 5. 27. 컴파일 오류와 런타임 오류 이해하기 프로그래밍을 하다 보면 가장 흔히 마주치는 문제 중 하나는 바로 오류이다. 오류를 효과적으로 이해하고 대처하는 것은 모든 개발자의 필수 기술이다. 오늘은 자바 프로그래밍에서 흔히 발생하는 두 가지 오류, 컴파일 오류와 런타임 오류에 대해 정리해본다 !! 컴파일 오류란?컴파일 오류는 자바 코드를 컴파일하는 과정에서 발생한다. 이 오류들은 대부분 프로그래밍 실수에서 발생하며, 변수명 오타, 잘못된 데이터 타입 사용, 잘못된 클래스 이름 사용 등이 포함된다. 이러한 오류는 자바 소스 코드가 컴퓨터에 의해 이해될 수 있는 기계어로 번역되기 전에 검출된다.예시:변수명을 잘못 입력했을 때: String naem = "OpenAI"; (올바른 변수명은 name이어야 함)존재하지 않는 클래스 사용 시: Scanner .. 2024. 5. 27. [인프런] 다형성 객체지향 프로그래밍의 대표적인 특징으로는 캡슐화, 상속, 다형성이 있다. 다형성은 이름 그대로 다양한 형태를 뜻한다. 프로그래밍에서 다형성은 한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 뜻한다. 보통 하나의 객체는 타입으로 고정되어 있다. 그런데 다형성을 사용하면 하나의 객체가 다른 타입으로 사용될 수 있다는 뜻이다. 다형적 참조public class Parent { public void parentMethod() { System.out.println("Parent.parentMethod"); }}public class Child extends Parent{ public void childMethod() { System.out.println("Child... 2024. 5. 27. [인프런] 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. 이전 1 ··· 6 7 8 9 10 11 12 ··· 27 다음