Java/[inflearn] 자바 기본 19

[김영한_자바기본][7. 자바 메모리 구조와 static] static 변수 및 메서드 이해 (p.15-31)

객체 인스턴스가 필요한 이유는 멤버 변수(인스턴스)변수를 사용하기 위함 static(정적 변수/클래스 변수)는 공통으로 사용되며, static변수/메서드는 클래스 자체에 접근해 사용 그러나 클래스 static메서드는 static 변수/메서드만 사용할 수 있고, 그 外는 static을 모두 사용 끝으로 main메서드 자체가 정적 메서드이기 static을 사용 1. Static 변수의 이해 [p.15 / Counter] count를 공용으로 사용 public class Counter { //메서드 영역 public int count; //멤버변수 -> 메서드 영역 // 객체로 사용될 경우 -> 힙영역 } - 클래스의 멤버 변수는 메서드 영역_클래스 정보에 속한다. - 클래스의 인스턴스마다 별도의 메모리 공간..

[김영한_자바기본][7. 자바 메모리 구조와 static] 자바 메모리 구조 이해 / 스택과 큐 자료 구조(p.1-12)

메서드 영역: 프로그램의 클래스 정보와 정적 변수를 저장하는 공간힙 영역: 동적으로 생성되는 객체들을 저장하는 공간스택 영역: 메서드 호출 및 파라미터를 임시로 저장하는 공간**메인 메서드 자체는 메서드 영역이나, 호출되고 실행될 때는 관련데이터가 스택에 저장된다.   [자바 메모리 구조 이해]ex) 커피 빨리 마시기 대회메서드 영역> 스택 영역  >힙 영역 1. 커피머신 - 상시 배치2. 테이블 - 상시 배치3. 감독관 - 상시 배치1. N번 참가자2. N번 참가자가 마시는 커피    (참가자가 생성하는 Sth)1. 커피 마신 시간 - 전광판 기록ex) 동작이 발생할때 마다 기록(실제) 클래스, 메서드, 생성자,         멤버변수(=필드), static변수 (실제) 파라미터 값, 지역변수, 호출자..

[김영한_자바기본][6. 접근 제어자] 배열 / 접근 제어자 함께 이해하기_문제풀이 쇼핑 카트(p.17)

패키지가 서로 다르다면 import를 선언하는 것이 중요하며, main 메서드가 없는 경우 매개변수로 대체하여 진행할 수 있다. 끝으로 return은 메서드 (전체) 실행 중간에서 빠져나가는 역할을 하고, break는 주로 반복문에서 사용되며, 반복을 중단하고 루프를 빠져나간다. 배열의 모든 요소를 점검해야할 때 break를 통해 빠져나가는 것은 추천하지 않는다. *문제풀이_쇼핑 카트 [p.17 / 실행 요청 결과] 장바구니 상품 출력 상품명 : 마늘, 합계 : 4000 상품명 : 상추, 합계 : 12000 전체 가격 합 : 16000 [p.17 / shoppingcart main class] public static void main(String[] args) { ShoppingCart cart = n..

[김영한_자바기본][2.기본형과 참조형] 상품 주문 시스템 개발_문제 풀이 해석 보충 (p.30-34)

중간 변수 없이 참조값 자체를 배열로 전달할 수 있으며, 배열을 매개변수로 받으면 배열 내 요소를 반복 출력할 수 있다. 또한 입력받은 값은 배열에 담기위한 작업을 수행하고, 기존 코드를 기반으로 응용하면 된다. *문제 풀이_상품 주문 시스템 개발 [p.30 / ProductOrder Class] public class ProductOrder { String productName; int price; int quantity; } >> 출력예시 상품명: 두부, 가격: 2000,수량: 2 상품명: 김치, 가격: 5000, 수량: 1 상품명: 콜라, 가격: 1500, 수량: 2 총 결제 금액: 12000 [p.31 / ProductOrderMain class] public static void main(Str..

[김영한_자바기본][3. 객체 지향 프로그래밍] 매서드 보충

`void`를 사용하는 경우는 메소드가 값을 반환하지 않고, 단순한 정보전달 작업을 수행할 때 사용한다. '다른 타입'을 사용하는 경우는 메소드가 어떤 값을 계산하거나 반환하여 호출자에게 제공할 때 사용한다. [void 타입 사용] public class ExampleVoid { int width; int height; // 메소드가 값을 반환하지 않음(void) void printRectangleInfo() { System.out.println("넓이: " + (width * height)); System.out.println("둘레 길이: " + (2 * (width + height))); if (width == height) { System.out.println("정사각형입니다."); } else ..

[김영한_자바기본][2.기본형과 참조형] Null/NullPointerExcepiton 이해 (p.23-29)

null은 가리키는 대상이 없거나, 나중에 입력하고 싶을때 사용된다. nullPointerException은 null이 없는 곳(참조 주소가 없음)을 찾아갈 때 발생한다. NullPointerException 이해하기 [p.23 / Data 클래스] public class Data { int value; } [p.26 / 지역 변수 내 NullPointerException] NullPointerException 이해하기 public static void main(String[] args) { Data data = null; data.value = 10; //NullPointerException발생 = 주소가 없는 곳을 찾아감 System.out.println("data.value = " + data.va..

[김영한_자바기본][1.클래스와 데이터] (보충) 클래스 도입/객체 사용/ 배열 도입 (p.16-34)

▶ 클래스 도입, 객체 이해하기 https://zoooom-in.tistory.com/43 [김영한_자바기본][1.클래스와 데이터] 클래스 도입, 객체 이해하기(인스턴스) (p.15-23) Class는 설계도로, 객체(인스턴스)는 설계도를 구현한 설계툴로 보자 정보 참조는 설계툴을 통해 이루어지며, 입력 전까지는 설계툴에는 원본(설계도면) 위치만 뜬다. [코드 읽기 전, 이해 도모를 zoooom-in.tistory.com 1. 클래스 도입 [p.15 / Student 클래스] public class Student { //필드 == 멤버변수 String name; int age; int grade; } [p.16 / ClassStart3] Student 클래스(설계도) 를 통해 'Student라는 타입/형..

[김영한_자바기본][2.기본형과 참조형] 기본형 / 참조형 이해 (p.1-6)

참조값에 접근한다는 것은 설계도와 부지 위치에 접근해서 같이 공동 작업을 하는 것이다. 기본형은 실제 값이 저장되어 독립적으로 관리되지만, 참조형은 변수에는 객체 위치(참조값)가 저장되어 여러 변수가 동일한 객체를 참조할 수 있다. * 기본값 (원시 자료형): 변수에는 실제 값이 직접 저장되며, 각 변수는 독립적으로 값을 가지고 있다. * 참조값 (참조 자료형): 변수에는 객체의 위치(참조값)가 저장되며, 여러 변수가 동일한 객체를 참조할 수 있다. [이해 도모를 위한 코드 예시 : 참조값 대입 이해하기] public class BuildingExample { public static void main(String[] args) { // 건물을 쌓아올리기 위한 건물 부지 위치(참조)를 나타내는 참조값 X..

[김영한_자바기본][1.클래스와 데이터] 클래스 도입, 객체 이해하기(인스턴스) (p.15-23)

Class는 설계도로, 객체(인스턴스)는 설계도를 구현한 설계툴로 보자 정보 참조는 설계툴을 통해 이루어지며, 입력 전까지는 설계툴에는 원본(설계도면) 위치만 뜬다. [코드 읽기 전, 이해 도모를 위한 예시] 1. Class == 설계도 └─ Student 클래스 선언 후, 타입으로 사용 └─ 이름, 나이, 성적 데이터를 담은 설계도 2. 객체(인스턴스) == 설계도 └─ 클래스의 인스턴스 생성 // 설계도를 구현한 설계툴 └─ Student students = new Student(); 3. 정보 참조와 입력 전 설계툴 └─ 설계툴을 이용해 데이터 입력 전까지 설계툴에는 설계도 원본 위치만 뜸(어떤 설계도를 참조했는지) └─ 설계툴을 이용해 설계도면을 참조하여 접근 가능 ↓ 구 현 ↓ [p.15] Cl..