JAVA(77)
-
메모리 구조_잡탕
자바의 메모리 영역은 크게 - 메서드(METHOD) - 스택(STACK) - 힙(HEAP) 영역으로 나눌 수 있다. 메서드 영역 : 클래스 정보를 보관한다. 스택 영역 : 실제 프로그램이 실행되는 영역. 메서드를 실행할 때 마다 하나씩 쌓인다. 힙 영역 : 객체(인스턴스)와 배열이 생성되는 영역. new 키워드를 사용하면 이 힙(heap) 영역에 객체가 생성된다. ------ ? ? ? 이렇게만 봐서는 모르겠다. 좀 더 깊이 들어가 보자. 메서드 영역 : 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 모든 영역에서 공유한다. - 클래스 정보 : 클래스의 실행 코드(바이트 코드), 멤버변수, 메서드, 생성자 코드 등 모든 실행 코드 - static 영역 : static(정적) ..
2024.01.22 -
접근제어자_default
접근 제어자에는 public, protected, default, private 등이 있다고 들었다. public 은 모든 접근을 허용한다는 것도 알겠고, private가 인스턴스의 내부에서만 접근가능하게 한다는 것은 이제 알겠다. 그럼 default는 뭐고 protected는 뭘까? 우선 알게 모르게 사용되고 있던 default에 대해 알아보자. package access.scope_check; public class DefaultAccess { int a ; public DefaultAccess(int a) { this.a = a; } void showA() { System.out.println("a는 " + a); } } package access.scope_check; public class De..
2024.01.17 -
접근제어자_private
public class Japangea { int inputMoney; Japangea(int inputMoney) { this.inputMoney = inputMoney; } public void sellProduct(int productPrice) { if (productPrice > inputMoney) { System.out.println("금액이 부족합니다."); } else { inputmoney -= productPrice; System.out.println("물품이 구매 되었습니다."); } } 이전 글에서 접근제어자 private 를 사용하여 외부에서의 접근을 차단했다. 그렇게 동작되는 것을 확인 했으니, 코드, 그림을 그려가며 이해도를 높여보자. private 를 사용하지 않았을 때 외..
2024.01.17 -
접근제어자
접근제어자란? 클래스의 멤버변수와 메서드에 접근하는 권한을 지정하는 예약어 이다. public, default, protected, private 등이 있다. ----- 역시나 이렇게 사전적인 정의만 봐 봤자 잘 모르겠다. 접근 제어자는 왜 필요할까? 목적이 뭘까? 예시를 작성 해보자. public class Japangea { int inputMoney; Japangea(int inputMoney) { this.inputMoney = inputMoney; } public void sellProduct(int productPrice) { if (productPrice > inputMoney) { System.out.println("금액이 부족합니다."); } else { inputmoney -= prod..
2024.01.17 -
생성자_this()
this()? 이전 내용을 학습하면서 this.멤버변수 등을 통해 this 가 해당 클래스의 인스턴스를 지칭하는 것을 알았다. this 키워드를 통해 코드가 작성된 클래스 객체에 접근하고 변수 초기화, 메서드 등을 실행 시켰었는데... this() 는 뭘까?? this()는 해당 클래스의 생성자를 호출하는 메서드 이다. ?? 말만 들으면 잘 모르겠다. 예시를 통해 알아보자. public class WhatIsThisMethod(){ String title; String content; String description; WhatIsThisMethod();// 기본 생성자 // 생성자 오버로딩 WhatIsThisMethod(String title, String content, String descripti..
2024.01.15 -
생성자
생성자란? 객체를 초기화하기 위해 사용하는 특별 메서드이다. 객체가 생성될 때 자동으로 호출되며, 주로 멤버 변수 초기에 사용된다. 객체를 생성하는 시점에 어떤 작업을 하고 싶다면 생성자(Constructor)를 이용한다. 짧은 설명만으론 모르겠다. 예시를 들어보자. public class Food { String name; String description; int price; } 위와 같이 Food class 가 있다. 초기화 해서 사용 해보자. public class FoodMain{ public static void main(String[] args){ Food food1 = new Food(); food1.name = "정어리 대가리 파이"; food1.description = "영국의 전통 음..
2024.01.15