본문 바로가기

전체 글52

Java - 상속 상속 부모 클래스의 필드와 메서드를 자식 클래스에게 물려주는 것 자바는 다른 언어와 달리 다중 상속을 허용하지 않는다. 단 하나의 부모클래스가 와야 한다. public class 자식클래스 extends 부모클래스{} 업캐스팅 자식 객체를 부모의 타입으로 해석하는 것 다양한 객체들을 부모의 타입으로 관리할 수 있다. Animal a = new Dog(); Animal b = new Cat(); Animal c = new Horse(); Animal[] animals = new Animal[]{a,b,c}; 자동 타입 변환 자식 클래스는 부모 클래스로 자동 타입 변환할 수 있다 Cat cat = new Cat(); Animal animal = cat; // new Cat(); 부모 타입으로 자동 타입 변환.. 2023. 2. 19.
Java - 객체, 클래스, 인스턴스의 차이 객체, 클래스, 인스턴스는 정말 중요합니다 하지만 많이들 헷갈리시는데요. 그래서 최대한 쉽게 정리해봤어요! 객체(Object)란? 객체(Object)란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말합니다. 예를 들어 물리적(유형)으로 존재하는 자동차, 컴퓨터, 사람과 추상적(무형)으로 존재하는 강의, 주문 등이 모두 객체가 될 수 있습니다. 사람이라는 객체가 있다고 하면 성별, 이름, 나이 등 속성이 존재하고 밥을 먹다, 걷다, 잔다 라는 동작을 가지고 있습니다. 자바에서는 이러한 속성들을 필드(Field), 동작들을 메소드(Method)라고 부릅니다. 클래스(Class)란? 클래스(Class)란 Java 프로그램에서 객체를 생성하기.. 2023. 2. 19.
Java - 오버로딩(overloading), 오버라이딩(overriding) 차이점 오버로딩(Overloading) 오버로딩(Overloading)이라는 뜻은 사전적으로 '과적하다.'라는 뜻입니다. C언어에서는 함수명이 고유하게 존재해야 합니다. 즉 하나의 함수가 하나의 기능만을 구현해야 한다는 것입니다. 하지만 자바에서는 하나의 메소드 이름으로 여러 기능을 구현하기 때문에 '과적하다.'라는 뜻의 이름을 붙여준 것으로 보입니다. ⭐️ 자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의할 수 있습니다. 오버로딩의 조건 메소드의 이름이 같고, 매개변수(파라미터)의 개수나 타입이 달라야 합니다. 주의할 점은 '리턴 값만' 다른 것은 오버로딩을 할 수 없습니다. 접근 제어자도 자유롭게 지정해.. 2023. 2. 19.
Java - 접근 제한자 접근 제한자 객체의 필드를와 메소드가 외부로 노출되지 않도록 도와주는 역할 public protected default private public 제한 범위 없음 같은 패키지 뿐만 아니라 다른 패키지에도 사용가능 protected 같은 패키지 혹은 자식 객체에만 사용 가능 default 접근 제한자를 생략했다면 기본으로 default 같은 패키지에서만 사용가능 private 객체 내부, 클래스 내부에서만 사용가능 Getter와 Setter 객체의 필드를 외부에서 마음대로 읽고 변경한다면 객체의 무결성이 깨질 수 있다. 이러한 문제 때문에 객체 지향 프로그래밍에서는 직접적인 외부에서의 필드 접근을 막고, 메소드를 이용해 필드에 접근하는 것을 선호한다. private 접근 제한을 가질 때 사용하는 메서드 /.. 2023. 2. 19.
Java - Array 배열 그리고 Enum 배열 Array 변수는 하나의 값만 저장할 수 있다. 배열은 연속된 공간에 값을 나열시키고, 각 값에 인덱스를 부여해 놓은 자료구조이다. 인덱스는 대괄호 [ ] 와 같이 사용하여 각 항목의 값을 읽거나 저장하는데 사용된다. 배열의 특징 배열은 같은 타입의 값만 관리한다. 배열의 길이는 늘리거나 줄일 수 없다. 이미 배열을 선언한 후에는 값 목록을 대입할 수 없다. 타입[] 변수; 선언 후 값 목록을 대입하려면 new 타입[] {값0, 값1 …} 붙여주면 된다. 배열의 변수 선언 타입[] 변수; 타입 변수[]; 타입[] 변수 = {값0, 값1, 값2, 값3 … } String[] season = {"Spring","Summer","Fall","Winter"}; 배열의 항목 변경 변수[인덱스] = “변경할 .. 2023. 2. 19.