boolean b = true;
char c = 'a';
byte bt = 1;
short s = 2;
int i = 3;
long l = 4L;
float f = 5.5f;
double d = 5.5;
String str;
str = "안녕" + "하세요.";
int a = 50;
int b = a; // 50은 2군데에 저장되어 있다.(a와 b)
int[] arr1 = new int[3]; // 객체가 힙에 생성되고 그 객체의 리모콘이 arr1 변수에 저장된다.
int[] arr2 = arr1; // 객체가 2개가 된게 아니라 리모콘만 2개가 되었다.
비주얼라이저를 통해 확인 가능.
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 20;
sub1();
int e = 50;
int f = 60;
}
static void sub1() {
int c = 30;
int d = 40;
}
}
public class Main {
public static void main(String[] args) {
int[] arr1 = new int[3];
int[] arr2 = new int[3];
arr1[0] = 10;
arr1[1] = 20;
arr1[2] = 30;
sub1();
System.out.println(arr1.length);
arr1 = null;
System.out.println("끝!");
}
static void sub1() {
int[] arr3 = new int[3];
}
}
//객체를 사용하지 않았을 때
int person1_0 = 1; // 사람 1의 번호
int person1_1 = 20; // 사람 1의 나이
int person1_2 = 170; // 사람 1의 키
int person2_0 = 2; // 사람 2의 번호
int person2_1 = 30; // 사람 2의 나이
int person2_2 = 180; // 사람 2의 키
//객체를 사용했을 때
int[] person1 = new int[3]; // 객체, 인스턴스가 생긴다.
person1[0] = 1; // 사람 1의 번호, 인스턴스 변수
person1[1] = 20; // 사람 1의 나이, 인스턴스 변수
person1[2] = 170; // 사람 1의 키, 인스턴스 변수
int[] person2 = new int[3]; // 객체, 인스턴스가 생긴다.
person2[0] = 2; // 사람 2의 번호, 인스턴스 변수
person2[1] = 30; // 사람 2의 나이, 인스턴스 변수
person2[2] = 180; // 사람 2의 키, 인스턴스 변수
//직접 만든 클래스로 객체를 만들어서 사용했을 때
class GameCharacter {
int no;
int age;
int height;
}
GameCharacter person1 = new GameCharacter(); // 객체, 인스턴스가 생긴다.
person1.no = 1; // 사람 1의 번호, 인스턴스 변수
person1.age = 20; // 사람 1의 나이, 인스턴스 변수
person1.height = 170; // 사람 1의 키, 인스턴스 변수
GameCharacter person2 = new GameCharacter();
person2.no = 2; // 사람 2의 번호, 인스턴스 변수
person2.age = 30; // 사람 2의 나이, 인스턴스 변수
person2.height = 180; // 사람 2의 키, 인스턴스 변수

class Person {
int maxSpeed;
}
Person p1 = new Person();
p1.maxSpeed = 100;
Person p2 = new Person();
p2.maxSpeed = 200;
Person p3 = new Person();
p3.maxSpeed = 300;
System.out.println(p1.maxSpeed); // 100
System.out.println(p2.maxSpeed); // 200
System.out.println(p3.maxSpeed); // 300
class Person {
static int maxSpeed;
}
Person p1 = new Person();
p1.maxSpeed = 100; // 이 코드는 실질적으로 `Person.maxSpeed = 100;` 으로 처리된다. 왜냐하면 p1 객체에는 maxSpeed 변수가 없고, maxSpeed 변수는 클래스에 1개만 존재하기 때문이다.
Person p2 = new Person();
p2.maxSpeed = 200;
Person p3 = new Person();
p3.maxSpeed = 300;
System.out.println(p1.maxSpeed); // 300 // 이 코드는 실질적으로 `System.out.println(Person.maxSpeed);` 와 같다.
System.out.println(p2.maxSpeed); // 300
System.out.println(p3.maxSpeed); // 300
class Person {
int 나이;
static int 인류평균나이; // 각각의 객체가 가질 필요없는 변수는 static 을 붙여서 `Person.인류평균나이` 와 같은 방식으로 접근하는게 좋다.
void 자기소개() { System.out.println("제 나이는 " + this.나이 + "살 입니다."); }
static void 인류평균나이소개() { System.out.println("인류평균나이는 " + 인류평균나이 + "살 입니다."; } // 각각의 객체가 가질 필요없는 메서드는 static 을 붙여서 `Person.인류평균나이소개();` 와 같은 방식으로 사용하는게 좋다.
}