본문 바로가기

개발자노트

(260)
클래스) 멤버변수와 클래스변수에 이해(모래성게임) package class04; // 공유 자원을 통한 모래성게임 import java.util.Random; class Person { String name; // 멤버변수 , 고유한값 static int sand = 100; // 클래스변수 , 공유자원!! boolean game() { // main 문단에 있는 무한루프를 종료조건을 끊어주는 T/F Random random = new Random(); int num = random.nextInt(20) + 1; System.out.println(name + "님이 " + num + " 가져갑니다.."); sand -= num; System.out.println("남은 모래: " + sand); System.out.println(); if (sand
클래스)멤버변수와 클래스변수의 이해(카드사용예제) package class04; class Card { String name; // 멤버변수(인스턴스변수) int limit; static int bal = 200000; // 클래스변수 void use() { this.use(10000); // 만원을 결제했을 때 아래 줄의 식을 use(int=10000) 으로 해서 쓰겠다. } void use(int money) { // 결제에 대한 로직 System.out.print(money + "원 사용: "); if (money > this.limit) { System.out.print("한도초과!"); } else if (bal < money) { System.out.print("잔액부족!"); } else { bal -= money; } System.out...
클래스) 멤버변수와 클래스변수의 차이 이해(강아지 학원) package class02; class Dog { String name; static String[] action = new String[5]; // 올바르지 않지만 static 설명을 위해 사용 static int index; void showInfo() { System.out.println(name + " 강아지"); for (int i = 0; i < index; i++) { System.out.println(action[i]); } } } public class Test06 { public static void main(String[] args) { Dog dog1 = new Dog(); dog1.name = "요요"; Dog dog2 = new Dog(); dog2.name = "꼬미"; do..
클래스) 멤버 변수와 클래스 변수의 차이 이해 package class02; // 멤버변수 : 인스턴스(객체)변수 | 클래스변수==[공유자원] class A { int num1; // 멤버변수 -> 객체마다 고유한 값 == 객체끼리 값을 공유X // 인스턴스(객체) 변수 static int num2; // 클래스변수-> 객체끼리 값을 공유한다는건... a객체의 변화가 b객체에게도 영향을 줌!! 확인방법: num2가 기울어짐! void showInfo() { System.out.println("num1= " + num1); System.out.println("num2= " + num2); } A(int num1, int num2) { this.num1 = num1; this.num2 = num2; } } public class Test05 { publ..
클래스)생성자와 기본 생성자의 이해(학생 기록부) package class02; class Student { String name; int lv; int score; void show() { System.out.println(this.name + " " + "Lv." + this.lv + "" + " SCORE: " + this.score); } Student(String name) { this(name, 1, 0); } Student(String name, int lv) { this(name, lv, 0); } Student(String name, int lv, int score) { this.name = name; this.lv = lv; this.score = score; System.out.println(this.name + " 생성완료!"); ..
클래스) 생성자와 기본 생성자의 관계 이해(점,좌표찍기) package class02; class Point { int x; int y; void showInfo() { System.out.println("P(" + this.x + "," + this.y + ")"); } Point() { this(0, 0); System.out.println("기본 생성자"); } Point(int x) { this.x = x; this.y = x; } Point(int x, int y) { this.x = x; this.y = y; } } public class Test03 { public static void main(String[] args) { Point p1 = new Point(10, 20); Point p2 = new Point(); Point p3 = new ..
클래스) 생성자와 기본 생성자의 관계(인자값) package unnamed; class A { int x; int y; void show() { System.out.println(x + " / " + y); } A() { this(1, 2); System.out.println("111"); } A(int x) { this(x, 3); System.out.println("222"); } A(int x, int y) { this.x = x; this.y = y; System.out.println("333"); } } public class Test02_2 { public static void main(String[] args) { A a1 = new A(13); A a2 = new A(); a1.show(); a2.show(); } } 출력값 = 333..
클래스) stack영역과 heap 영역의 이해 package class01; class A { int x; int y; void show() { System.out.println(x + " / " + y); } } public class Test02 { public static void main(String[] args) { A a1 = new A(); // 매개변수가 없음으로 지정해줘야함 A a2 = new A(); a1.x = 10; // 매개변수 a1.y = 20; // 매개변수 a2.x = 11; // 매개변수 a2.y = 12; // 매개변수 int[] data = new int[3]; // [0,0,0] 의 세줄짜리 배열 System.out.println(data); // 배열에서도 그 주소값을 찾을 수 있듯이 a1.show(); // 만..