728x90
반응형
SMALL

2024/03/26 5

캡슐화

참고 자료: 김영한의 실전 자바 - 중급 1편 | 김영한 - 인프런 김영한 | 실무에 필요한 자바의 다양한 중급 기능을 예제 코드로 깊이있게 학습합니다., [사진]국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 www.inflearn.com 캡슐화는 객체 지향 프로그래밍의 중요한 개념 중 하나다. 캡슐화는 데이터와 해당 데이터를 처리하는 메서드를 하나로 묶어서 외부에서의 접근을 제한하는 것을 말한다. 캡슐화를 통해 데이터의 직접적인 변경을 방지하거나 제한할 수 있다. 캡슐화는 쉽게 이야기해서 속성과 기능을 하나로 묶고, 외부에 꼭 필요한 기능만 노출하고 나머지는 모두 내부로 숨기는 것이다. 캡슐화는 그러니까 두가지 파트로 나뉘어지는데, 1. 속성과 기능..

Class 레벨의 접근제어자

기본적으로 접근제어자 개념은 이해하고 있지만 클래스 레벨에 붙는 접근제어자 개념이 빈약한것 같아 기록한다. 우선 접근제어자는 총 4개가 있다. public, private, default, protected. public: 모든 외부의 접근을 허용 private: 같은 클래스말고는 모두 허용하지 X default: 같은 패키지 안에서만 접근 허용 protected: 같은 패키지 안에서만 접근 허용, 다른 패키지에서는 근본적으로 접근 불가하지만 상속받은 경우 접근이 가능 근데 클래스에서는 딱 2개 public과 default만 사용할 수 있다. 규칙이다. 그리고 그 외 규칙이 더 있다. 한 파일당 클래스 레벨에서 public은 무조건 딱 하나만 있을 수 있다. public 클래스와 파일명은 반드시 같아야 ..

Package에서 딱 하나 헷갈리는 한가지

진짜 어려울 게 하나도 없는 Package 개념에서 헷갈리는 딱 한가지만을 정리하고자 한다. 보통 패키지 구조는 다음과 같다. a b c d e f 그리고 이 구조는 파일시스템에서 디렉토리의 구조와 백퍼센트 일치해야 한다. 근데 이게 중요한게 아니고 이 구조라면 패키지는 몇개일까? 6개다. a/a.b/a.c/a.c.d/a.c.e/a.c.f 즉, a안에 b가 있으면 a 패키지에 포함 아닌가요? 절대 아니다. a랑 a.b랑은 완전히 다른 패키지이다. 사람이 볼때야 저게 a안에 b처럼 보이지만 자바는 둘을 완전히 다른 패키지로 판단한다. 이것만 좀 주의. 그래서 실제로 만약 특정 클래스에서 a.c와 같은 구조를 가진 패키지 전체를 임포트해도 a.c.d 패키지안에 있는 클래스 사용하려면 따로 임포트해야 한다. ..

생성자 - this()와 오버로딩

생성자 개념은 익숙하다고 해도 오버로딩 시 this()를 사용하는 경우가 어떤 경우가 있는지 좀 명확하게 하기 위해 작성을 해본다. 예를 들어, 다음과 같은 코드가 있다고 해보자. Student public class Student { private String name; private int age; private int grade; public Student(String name, int age) { this.name = name; this.age = age; this.grade = 0; } public Student(String name, int age, int grade) { this.name = name; this.age = age; this.grade = grade; } public Strin..

객체 지향 프로그래밍

나는 이게 항상 헷갈렸다. 그래서 객체 지향 프로그램은 절차 지향이랑 뭐가 다른데? 비슷한거 같은데 왜 분리 해놓은거야? 이 두 단어의 의미는 알고 있다. 두 단어의 의미는 다음과 같다. 절차 지향 프로그래밍: 순차적으로 프로그래밍이 실행된다. 작성한 코드의 순서에 중점을 두고 진행된다. 객체 지향 프로그래밍: 프로그램의 동작이나 특정 행위를 객체를 중심으로 코드를 작성하고 그에 맞춰 프로그램이 실행된다. 어떻게 다른걸까? 우선 객체 지향 프로그래밍을 이해하기에 앞서 절차 지향 프로그래밍이 뭔지 알아보자. 음악 플레이어 프로그램 다음과 같은 음악 플레이어 프로그램이 있다고 가정해보자. 플레이어를 실행/종료 할 수 있다. 플레이어의 볼륨을 줄이고, 키울 수 있다. 플레이어의 상태를 표시할 수 있다. 그래서..

728x90
반응형
LIST