자바

신예환·2022년 9월 30일
0

자바

목록 보기
1/12
post-thumbnail

자바

클래스 => (설계도) : 원본 폴더
객체 => 제품 : 복사본 폴더
변수 => ?? => 텍스트파일(읽/쓰)
메소드 => ?? => 실행파일(실행만 가능)
변수에는 객체 저장X(너무 크기 때문), 오직 리모콘만 저장가능

자바스크립트와 달리 자바는 객체 1개를 만들더라도 설계도가 있어야 합니다

클래스로 할 수 있는 2가지

클래스는 원본폴더이고 코드 영역에 들어간다

객체생성은 원본폴더를 복사해서 복사본 폴더를 힙에 만드는 행위이다

객체라는 폴더에는 우리가 마음대로 파일을 추가할 수 없고, 클래스에 미리 정의했어야 한다

자동차들이 서로 다른 최고속력을 가지도록

객체는 폴더, 변수는 텍스트파일, 함수는 실행파일이라고 볼 수 있다

객체의 생성과 소멸 시나리오

리모콘이 객체를 바라본다는 표현의 의미

JVM
-> 코드영역(클래스가 산다) -> 클래스 -> 자동차
-> 힙(객체가 산다)

class 자동차 {}
-> /JVM/코드영역/클래스/자동차

new 자동차(); : 자동차라는 원본폴더를 복사해서 복제본을 만든다
-> /JVM/코드영역/클래스/자동차를 복사해서
-> /JVM/힙/자동차@1 만든다

new 자동차(); : 자동차라는 원본폴더를 복사해서 복제본을 만든다
-> /JVM/코드영역/클래스/자동차를 복사해서
-> /JVM/힙/자동차@2 만든다

자바세상에서는 폴더안의 구성요소를 추가/삭제 불가능하다.
클래스에 미리 정의를 해놓아야 한다.(사전에 미리)

특정 클래스를 통해 폴더를 만들때,
/JVM/코드영역/클래스/자동차/최고속력 에다가 만들면
이미 파일이 들어 있다. 힙안에 쓸순(use) 있어서 추가/삭제 불가능하다.
자동으로 /JVM/힙/자동차@1/최고속력이 생긴다.

클래스로 할 수 있는 일

  • 변수 생성 : 자동차 a자동차;
  • 객체 생성 : new 자동차(); -> 원본 폴더를 복사하는 행위
  • 리모콘 생성 :

class 자동차 {}

Class Main{
public static void main(String[] args) { <- 함수
// 지역변수 스택의 맨 밑에 있다.
// 2가지, 객체, 객체내부 객체리모콘(객체는 이 객체리모콘을 this라고 부른다)
// new 자동차() 가 반환하는 것은 그 객체의 리모콘을 반환
자동차 a자동차1 = new 자동차();
자동차 a자동차2; // null
}
}

-> 자동차 객체를 조종 할 수 있는 리모콘이 객체 외부와 내부에 하나씩 존재한다.

자동차 a자동차1 = new 자동차();
자동차 a자동차2 = a자동차1; // 1번 자동차를 조종할 수 있는 리모콘

자동차 a자동차1 = new 자동차(); // 1번

자동차 a자동차2 = a자동차1; // 2번
a자동차2 = a자동차1;

// 1번 객체를 바라보는 외부 리모콘의 개수?
// 2번 객체를 바라보는 외부 리모콘의 개수?

// 3
class Main {

public static void main(String[] args) {


    자동차 a자동차1 = new 자동차();
    자동차 a자동차2 = new 자동차();

    a자동차1(폴더).최고속력(텍스트파일) = 100;
    a자동차2.최고속력 = 200;

}

}

class 자동차 {
int 최고속력;

}

// 4

class 자동차 {
// 명사(.txt) -> 편집, 값을 쓰거나 읽기 가능
String 차종;
int 연식;
int 최고속력;

// 동사(.exe) -> 오로지 파일을 실행하거나 말거나(저장, 수정 불가)
// 메소드
void 감속하다(){}
void 가속하다(){}

}

profile
더디가도 함께가자

0개의 댓글