접근제어자를 사용하면 외부에서 필드 메서드에 접근할 수 있다.객체의 필드를 외부 에서 접근하지 못하도록 막는것이다.private는 모든 외부 호출을 막는다. private가 붙은경우 내부에서만 접근이 가능하다.좋은 프로그램은 무한한 자유를 제공하는것보다 적절한 제약을
클래스가 많아지면서 분류별로 관리를 해야한다. 컴퓨터에서 보통 디렉토리를 제공하여 원하는 파일을 분류 할 수 있는데 자바에서도 마찬가지로 패키지라는 것을 제공하여 원하는 클래스 등등을 분류하여 관리할 수 있다.패키지는 이름 그대로 물건을 운송하기 위한 포장 용기 그 묶
자바 메모리 구조는 크게 3가지로 나눌 수 있으며 메서드영역 힙영역 스택영역으로 나뉠 수 있다.자바가 실행이 된다면 JVM내부에서 3가지의 메모리 구조로 나뉘어 실행이 된다고 보면 된다.메서드 영역은 클래스 정보를 보관하는 곳이다. 클래스 정보가 붕어빵 틀이라고 한다.
레코드 클래스란 일반 클래스와 다르게 간단하게 데이터를 저장하고 사용할 수 있으며헤더에 내용을 선언한다. 기본적으로 equals, hashCode, toString 메서드가 자동으로 생성되어 제공된다.예를들어 이렇게 선언할 수 있다.간단한 이 문장은 다음 코드와 동일하
레코드 클래스가 생긴 이유 객체간 불변 데이터를 전달시 자바 14이전에 여러가지 문제가 많은 boilerplate필드 메소드가 있는 클래스를 생성해야만 했다 하지만 자바 14릴리즈 버전 이후 레코드 클래스가 출시 되면서 이러한 문제를 해결할 수 있게 되었다. 정리 :
클래스의 필드에 @Getter 혹은 @Setter 어노테이션을 선언하면 롬복은 기본적인 getter/setter메서드를 제공한다.기본적은 getter는 단순한 필드를 반환한다.만약에 필드 이름이 foo라면 기본적으로 setFoo라는 반환타입이 없는 setter를 호출하
파라미터가 없는 생성자를 제공해준다. 이것이 불가능한경우(예 final fields가 있다면) 컴파일 에러가 발생하게 된다.이를 해결하기 위해 @NoArgsConstructor(force = true)를 사용하면 된다. 이렇게 하면 모든 final필드가 0,false

클래스 위에 @ToString 주석을 추가하게 되면 lombok이 자동으로 toString()을 구현해준다. 필드 이름을 포함할지의 여부는 설정할 수 있지만 그렇지 않으면 toString()의 형식은 고정되어 있다. 클래스의 모든 필드를 문자열로 변환하여 반환하는 기본

학생 한명을 추가하기 위해서는 변수명을 바꿔야 하며 일일히 노가다가를 해주면서 바꿔야 한다. 하지만 이런 반복 노가다 부분은 반복문을 사용하여 해결할 수 있다. 하지만 이 역시 해결할 수 없다. 왜냐하면 변수의 명도 바꿔줘야 하기 때문인데 변수명이 전부 다 다르기 때문

기본형(Primitive Type) : 변수에 값을 직접 넣을 수 있는 타입을 기본형이라고 한다.참조형(Reference Type) : 변수에 값을 직접 넣는것이 아닌 생성된 객체의 위치를 가리키는 주소값을 넣는것을 참조형 변수라고 하며 객체 또는 배열에 사용됨객체는
지금까지 했던 방법이 절차지향 프로그래밍이다.절차지향은 순서를 중요하게 생각한다.객체를 중심으로 프로그래밍을 한다.필요한 블럭을 가져와 사용하는것처럼 메서드 호출만으로 가져와 사용할 수 있다.우리가 작성한 코드는 데이터와 기능이 분리되어있다.데이터는 클래스 기능은 메인
자기 자신의 인스턴스를 가리킨다.initMember는 멤버의 초깃값을 설정하는 메서드이다.메서드의 매개변수의 이름과 필드의 이름이 똑같은 경우 구분을 지을 수 없다. 이 경우 필드보다 매개변수가 코드블럭의 안쪽에 있기에 매개변수가 우선순위를 가지게 된다. 즉 매개변수에
클래스가 많아지면서 분류별로 관리를 해야한다. 컴퓨터에서 보통 디렉토리를 제공하여 원하는 파일을 분류 할 수 있는데 자바에서도 마찬가지로 패키지라는 것을 제공하여 원하는 클래스 등등을 분류하여 관리할 수 있다.패키지는 이름 그대로 물건을 운송하기 위한 포장 용기 그 묶
접근제어자를 사용하면 외부에서 필드 메서드에 접근할 수 있다.객체의 필드를 외부 에서 접근하지 못하도록 막는것이다.private는 모든 외부 호출을 막는다. private가 붙은경우 내부에서만 접근이 가능하다.좋은 프로그램은 무한한 자유를 제공하는것보다 적절한 제약을

자바 메모리 구조는 크게 3가지로 나눌 수 있으며 메서드영역 힙영역 스택영역으로 나뉠 수 있다.자바가 실행이 된다면 JVM내부에서 3가지의 메모리 구조로 나뉘어 실행이 된다고 보면 된다.메서드 영역은 클래스 정보를 보관하는 곳이다. 클래스 정보가 붕어빵 틀이라고 한다.
변수에 final키워드가 붙으면 더이상 값을 변경할 수 없다.final을 지역변수에 설정한 경우 한번만 값을 할당할 수 있으며 그 이후에는 값을 변경할 수 없다.메서드의 매개변수에 final키워드가 붙으면 매개변수의 값을 설정할 수 없다.final키워드가 붙은 상수는
자식은 부모에 대해 알고 있지만 부모는 누가 내 코드를 상속받을지 모른다. 화살표는 누군지를 안다는 표현이기에 자식이 부모를 향해 화살표가 그려진다.부모는 자식에 접근할 수 없으며 누군지 모른다.하나의 자식이 두개의 부모를 갖는것은 안된다.다중상속을 할 경우 두개의 부
다양한 형태 여러 형태를 뜻하며 프로그래밍에서 객체가 여러 타입의 객체로 취급될 수 있는 능력을 뜻한다.다형성을 이해하기 위해서는 다형적 참조 메서드 오버라이딩 두가지를 이해해야 한다.부모타입의 변수가 자식 인스턴스를 참조할 수 있다.자식 인스턴스는 메모리 내부에 부모

추상화 캡슐화 상속 다형성이 있지만 이 중에서 다형성이 제일 중요하다.객체지향 프로그래밍은 컴퓨터 명령어 목록에서 벗어나 각 독립된 객체들을 만들고 모임으로 만드는 것이다.각 객체들이 메세지를 주고 받으면서 서로 협력하면서 데이터를 처리하는 것이다.객체지향 프로그래밍은
@Builder는 클래스에 대한 복잡한 빌더(complex builderAPI)를 생산한다. complex는 많은 필드나 속성을 가진 클래스를 말한다. builder API는 객체를 생성하는 과정을 유연하게 하고 읽기 쉽게 만드는 방식이다. 다음 예제에서 @Build

데이터는 키보드를 통해 입력이 되거나 특정 프로그램 파일에 의해서 데이터가 입력이 될 수 있다. 또한 이러한 데이터를 모니터로 출력이 되는데 이것을 데이터 입출력이라고 하며 자바에서는 이러한 입출력을 입력 스트릠, 출력 스트림을 통하여 입출력을 할 수 있다.스트림은 단