본문 바로가기

분류 전체보기156

[java-basic] 8. final 김영한의 실전 자바 - 기본편목차 1. final 변수와 상수1`final` 키워드는 이름 그대로 끝! 이라는 뜻이다.변수에 `final` 키워드가 붙으면 더는 값을 변경할 수 없다.  참고로 `final` 은 `class` , `method` 를 포함한 여러 곳에 붙을 수 있다. 지금은 변수에 붙는 `final` 키워드를 알아보자. 나머지는 `final` 의 사용법은 상속을 설명한 이후에 설명한다. final - 지역 변수package final1;public class FinalLocalMain { public static void main(String[] args) { // final 지역 변수1 final int data1; data1 = 10; // 최.. 2024. 12. 26.
[java-basic] 7. 자바 메모리 구조와 static 김영한의 실전 자바 - 기본편목차 1. 자바 메모리 구조자바 메모리 구조 메서드 영역(Mehod Area): 메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 모든 영역에서 공유한다. 클래스 정보: 클래스의 실행 코드(바이트 코드), 필드, 메서드와 생성자 코드 등 모든 실행 코드가 존재한다.static 영역: `static` 변수들을 보관한다. 뒤에서 자세히 설명한다.런타임 상수 풀: 프로그램을 실행하는데 필요한 공통 리터럴 상수를 보관한다. 예를 들어서 프로그램에 `"hello"` 라는 리터럴 문자가 있으면 이런 문자를 공통으로 묶어서 관리한다. 이 외에도 프로그램을 효율적으로 관리하기 위한 상수들을 관리한다. (참고로 문자열을 다루는 문자열 풀은 자바 7부터 .. 2024. 12. 23.
[java-basic] 6. 접근 제어자 김영한의 실전 자바 - 기본편목차 1. 접근 제어자 이해1자바는 `public` , `private` 같은 접근 제어자(access modifier)를 제공한다. 접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있다.이런 접근 제어자가 왜 필요할까? 예제를 통해 접근 제어자가 필요한 이유를 알아보자. 여러분은 스피커에 들어가는 소프트웨어를 개발하는 개발자다.스피커의 음량은 절대로 100을 넘으면 안된다는 요구사항이 있다. (100을 넘어가면 스피커의 부품들이 고장난다.) 스피커 객체를 만들어보자.스피커는 음량을 높이고, 내리고, 현재 음량을 확인할 수 있는 단순한 기능을 제공한다.요구사항 대로 스피커의 음량은 100까지만 증가할 수 있다. 절대 100.. 2024. 12. 20.
[java-basic] 5. 패키지 김영한의 실전 자바 - 기본편목차 1. 패키지 - 시작쇼핑몰 시스템을 개발한다고 가정해보자. 다음과 같이 프로그램이 매우 작고 단순해서 클래스가 몇게 없다면 크게 고민할 거리가 없겠지만, 기능이 점점 추가되어서 프로그램이 아주 커지게 된다면 어떻게 될까?  아주 작은 프로그램 OrderUserProduct  큰 프로그램 UserUserManagerUserHistoryProductProductCatalogProductImageOrderOrderServiceOrderHistoryShoppingCartCartItemPaymentPaymentHistoryShipmentShipmentTracker 매우 많은 클래스가 등장하면서 관련 있는 기능들을 분류해서 관리하고 싶을 것이다. 컴퓨터는 보통 파일을 분류하기 위해.. 2024. 12. 20.
[java-basic] 4. 생성자 김영한의 실전 자바 - 기본편목차 1. 생성자 - 필요한 이유객체를 생성하는 시점에 어떤 작업을 하고 싶다면 생성자(Constructor)를 이용하면 된다.생성자를 알아보기 전에 먼저 생성자가 왜 필요한지 코드로 간단히 알아보자.  MemberInit package construct1;public class MemberInit { String name; int age; int grade;}  MethodInitMain1package construct1;public class MethodInitMain1 { public static void main(String[] args) { MemberInit member1 = new MemberInit(); member.. 2024. 12. 17.
[java-basic] 3. 객체 지향 프로그래밍 김영한의 실전 자바 - 기본편목차 1. 절차 지향 프로그래밍1 - 시작프로그래밍 방식은 크게 절차 지향 프로그래밍과 객체 지향 프로그래밍으로 나눌 수 있다.  절차 지향 프로그래밍절차 지향 프로그래밍은 이름 그대로 절차를 지향한다. 쉽게 이야기해서 실행 순서를 중요하게 생각하는 방식이다.절차 지향 프로그래밍은 프로그램의 흐름을 순차적으로 따르며 처리하는 방식이다. 즉, "어떻게"를 중심으로 프로 그래밍 한다.  객체 지향 프로그래밍객체 지향 프로그래밍은 이름 그대로 객체를 지향한다. 쉽게 이야기해서 객체를 중요하게 생각하는 방식이다.객체 지향 프로그래밍은 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프 로그래밍하는 방식이다. 즉, "무엇을" 중심으로 프로그래밍 한다... 2024. 12. 16.
[java-basic] 2. 기본형과 참조형 김영한의 실전 자바 - 기본편목차 1. 기본형 vs 참조형 1 - 시작변수의 데이터 타입을 가장 크게 보면 기본형과 참조형으로 분류할 수 있다. 사용하는 값을 변수에 직접 넣을 수 있는 기본형, 그리고 이전에 본 `Student student1` 과 같이 객체가 저장된 메모리의 위치를 가리키는 참조값을 넣을 수 있는 참조형으로 분류할 수 있다. 기본형 (Primitive Type)변수에 실제 사용할 값을 직접 저장하는 데이터 타입이다.`int`, `long`, `double`, `boolean` 등이 있으며, 모두 소문자로 시작한다.값을 직접 저장하기 때문에 산술 연산이나 비교 연산 등 직접적인 연산이 가능하다. 변수에 들어있는 값을 바로 계산에 활용할 수 있다.자바가 기본으로 제공하는 데이터 타입으로,.. 2024. 12. 11.
반응형