1. 다형성“다양한 형태”, “여러 형태”한 객체가 여러 타입의 객체로 취급될 수 있는 능력다형성 이루는 핵심 이론다형적 참조메서드 오버라이딩 1-1. 다형적 참조📌 "부모는 자식 (자신 기준 모든 자식 타입) 을 담을 수 있다"public class Parent { public void parentMethod() { System.out.pritnln("Parent.parentMethod"); }}public class Child extends Parent { public void childMethod() { System.out.println("Child.childMethod"); }} 1-1-1. 부모 변수 → 부모 인스턴스 참조Parent parent = new Parent();parent.pa..
Java
1. 상속기존 클래스의 필드와 메서드를 새로운 클래스에서 재사용하게 해 줌“기존 클래스의 속성과 기능을 물려받는 것”extends 키워드 사용extends : -> (”내가 상대방을 안다”) 라고 생각 가능public class ElectricCar extends Car// public class ElectricCar -> Car 라고 생각 가능 📌 상속관계 용어부모 클래스 (슈퍼 클래스) - 상속을 통해 자신의 필드와 메서드를 물려주는 클래스 - 자식 클래스에 대해 전혀 모름자식 클래스 (서브 클래스) - 부모 클래스에게서 필드와 메서드를 상속받는 클래스 상속 예시 구조도상속 예시 코드public class Car { public void move() { System.out.prin..
1. 캡슐화객체 지향 프로그래밍의 중요한 개념 중 하나데이터와 해당 데이터를 처리하는 메서드를 하나로 묶어서 외부에서의 접근을 제한하는 것데이터의 직접적인 변경 방지 / 제한 가능 📌 좋은 캡슐화 : 데이터는 모두 숨기고, 꼭 필요한 기능만 노출하는 것 1-1. 캡슐화와 데이터객체 ⇒ 필수로 데이터를 숨겨라!데이터가 외부에서 접근 가능하면 클래스 내부의 (데이터 변경) 기능을 무시한 채 데이터를 직접 변경 가능 ⇒ 캡슐화가 깨짐! “객체의 데이터는 객체가 제공하는 기능(메서드) 을 통해서만 접근해야 한다.” ⇒ 데이터는 가급적 모두 private 으로! 1-2. 캡슐화와 기능가급적 필요한 기능만 노출나머지 기능은 최대한 많이 숨겨라! 1-3. 캡슐화 좋은 예시은행 계좌 클래스 예시public c..
1. 접근 제어자해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용 or 제한좋은 프로그램이란?: 무한한 자유도가 주어지는 프로그램이 아니다.⇒ 적절한 제약을 제공하는 프로그램이 좋은 프로그램이다! 1-1. 접근 제어자 종류private모든 외부 호출을 막음클래스 안으로 숨길 때 사용(default)(package-private) 이라고도 함같은 패키지 안에서는 허용패키지 안으로 숨길 때 사용protected같은 패키지 안에서 호출 허용(패키지가 달라도) 상속 관계 호출 허용상속 관계로 숨길 때 사용public모든 외부 호출 허용숨기지 않을 때 사용📌 차단 순 private > (default) > protected > public 1-2. 접근 제어자 사용 위치클래스클래스 레벨의..
1. 생성자1-1. 생성자는 왜 필요한가?객체를 생성하고 나면 멤버 변수 값을 초기화 해야 함생성자가 없다면? ⇒ 객체의 멤버 변수 초기화 과정을 반복해야 함(객체 지향 프로그래밍) 객체 생성 시점에 객체가 자기 자신의 데이터를 초기화하는 기능 ⇒ 생성자 통해서! 1-2. this"자기 자신 객체 (인스턴스) 의 참조"public class Student { String name; int age; int grade; void initStudent(String name, int age, int grade) { // this : 자기 자신 객체를 가리킴 this.name = name; this.age = age; this.grade = grade; }} 멤버 변수와 메서드의 매개변수 우선순위매개변수..
1. 객체 지향 프로그래밍 1-1. 절차 지향 프로그래밍절차를 지향 ⇒ 실행 순서를 중요하게 여김프로그램의 흐름을 순차적으로 따르며 처리하는 방식어떻게 를 중심으로 개발 1-2. 객체 지향 프로그래밍객체를 지향 ⇒ 객체를 중요하게 여김사물이나 사건등을 객체로 봄 ⇒ 객체들 간의 상호작용을 중심으로 프로그래밍무엇 을 중심으로 개발 1-3. 절차 지향 프로그래밍 vs 객체 지향 프로그래밍 📌 정리) 객체 지향 프로그래밍클래스를 사용하는데 필요한 모든 속성(멤버변수) 과 기능 (메서드) 이 하나의 클래스에 포함=> 클래스를 사용하는 입장 : 클래스 내부에 어떤 속성(데이터)이 있는지 몰라도 됨 단지 필요한 기능만 호출해서 사용만 하..
1. 기본형, 참조형기본형 (Primitive Type)사용하는 값을 변수에 직접 넣음int, long, double, boolean 등참조형 (Reference Type)객체가 저장된 메모리의 위치를 가리키는 참조값(주소)를 넣음클래스(객체), 배열, String 2. 기본형 vs 참조형2-1. 전체적인 차이점 기본형참조형이름모두 소문자로 시작 (int, long, double … )클래스는 대문자로 시작 (Student, Person … )사용자 정의사용자가 정의 불가클래스만 직접 정의 가능 2-2. 차이점 - 변수 대입📌 자바 대원칙"자바는 항상 변수의 값을 복사해서 대입한다"변수 대입 기본형참조형변수 대입변수에 들어있는 실제 값을 복사해서 대입변수에 들어있는 참조값을 복사해서 대입Student..
1. 클래스가 필요한 이유학생 정보를 관리할 때 ⇒ 배열 여러개 사용해서 이름, 나이, 성적 등을 관리한다면?데이터 관리하기에 매우 복잡함학생이라는 개념을 하나로 묶는 것이 관리하기 좋음!📌 데이터를 상위 개념으로 묶어서 관리하기 좋은 것이 클래스 2. 클래스 (Class)객체를 생성하기 위한 ‘틀’ or ‘설계도’객체가 가져야 할 속성 (변수) 과 기능 (메서드) 를 정의함 2-1. 클래스와 사용자 정의 타입타입 : 데이터 종류 or 형태클래스 사용 ⇒ 사용자가 정의하는 타입을 만들 수 있음사용자 정의 타입을 만들기 위한 설계도 ⇒ “클래스”클래스 사용해서 실제 메모리에 만들어진 실체를 “객체” or “인스턴스” 라고 함 3. 클래스 선언클래스 선언 방법// 클래스 선언접근제어자 class 클래스이름..