본문 바로가기
수업내용

20230426 수업내용🤦‍♂️

by titlejjk 2023. 4. 26.

자바는 최소 한개의 클래스로 구성된다.

자바의 클래스는 어떠한 객체의 변수, 메서드의 집합

필드는 객체 데이터가 저장되는 곳

메서드는 객체의 동작을 수행하는 부분이다.

클래스란 객체를 만들기 위한 기본적인 틀이고 객체는 실제로 이 틀을 이용해 만들어낸 결과물을 말한다.

 

필드👉

필드는 해당 클래스 내의 정의된 변수를 의미한다.

멤버변수 또는 인스턴스 변수라고 하고 이 변수는 객체의 특성을 나타낸다.

클래스의{ } 중괄호 안에 아래와 같은 형식으로 필드를 정의 할수 있다.

초기 값을 부여하지 않으면 기본 값이 들어간다.

int의 기본값은 0, boolean의 기본값은 false, 참조데이터 type의 기본값은 null이다.

메소드👉

메소드는 객체가 행해야 하는 작업을 어떻게 실행해야 할지 설계를 하는 작업이다.

메소드 안쪽 블록에는 여러줄의 코드를 입력해둘수 있다.

void👉

어떤 데이터도 반환하지 않겠다.

다른 패키지에서 다른 객체를 가져오기

MainClass에서 Car라는 class의 객체를 쓰기 위해서 import 를 해보았다.

//Car 클래스로 객체를 생성하고 생성된 개체의 참조값을 car1이라는 지역변수에 담기

Car car1 = new Car(); 라는 생성자를 만들어준 후에 다음 하단에서 Car Class의 객체나 함수를 사용이 가능하다.

//Car 객체의 참조값에 .을 찍어서 메소드 호출하기

생성자를 이용해 어떻게 Car클래스에 있는 객체와 메소드를 불러오는지 강의를 해주셨다.
이렇게 Car 클래스에 있는 필드도 참조해서 값이 가능하다.

 
package test.main;

import test.mypac.Car;

public class MainClass02 {
	public static void main(String[] args) {
		//Car 객체를 생성해서 참조값을 Car type 지역변수 car1에 담기
		Car car1 = new Car();
		//car에 담긴 참조값을 Car type 지역 변수 car2에 복사해 주기
		Car car2 = car1;
		//Car type 의 참조값을 담을수 있는 지역변수 car3 만들기
		Car car3 = null;
	
	}
}

위 같은 경우는 car1 = new car();일때만 객체만 생성된다. (총 1개의 객체 생성)

package test.main;

import test.mypac.Car;

public class MainClass02 {
	public static void main(String[] args) {
		//Car 객체를 생성해서 참조값을 Car type 지역변수 car1에 담기
		Car car1 = new Car();
		//car에 담긴 참조값을 Car type 지역 변수 car2에 복사해 주기
		Car car2 = car1;
		//Car type 의 참조값을 담을수 있는 지역변수 car3 만들기
		Car car3 = null;
	
		car1.name = "아반떼";
		String a = car1.name;
		String b = car2.name;
		
		car1.drive();
		car2.drive();
		car3.drive();
	}
}

car3 같은 경우는 null값이라 참조값이 없으므로 car3.drive();는 실행되지 않는다.(NullPointerException 발생)

drive() 메소드는 리턴 type이 void 이기 때문에 아래의 코드는 성립하지 않는다.

this에 대한 설명

this는 각 객체 안에서 자기자신을 나타내는 참조값을 가리키는 것을 this라고 한다.

 

static이란 의미는 '정적인'이라는 의미인데 딱히 자바와는 상관이 크게 없다.

 

heap 영역은 객체가 만들어져서 보관되는 사물함 영역 각각의 객체는 사물함 키값(참조값)으로 구분 된다. 즉 참조값을 이용해서 원하는 객체를 찾아 갈수 있다.

 

stack 영역은 메소드 안쪽이 실행될때 메소드 안에서 만드는 지역 변수가 만들어 지는 영역. 지역변수명으로 원하는 값을 찾아서 사용할수 있다.

 

static 영역은 static 필드나 static 메소드가 클래스에 포장되어서 (감싸져서) 만들어지는 영역. 클래스명을 이용해서 원하는 클래스를 찾아갈수 있다. 사물함/참조값의 개념이 아니다. 클래스가 올라가지만 오직 하나만 올라간다. 즉 static 필드와 static메소드는 오직 한가지만 올릴수 있다.

static / stack / heap에 대하여
static영역에 대한 개념 공부중

자바에서 .을 사용 하는것은 두가지 경우이다. 참조값에다가 .을찍어 사용하거나 class명에 . 을찍어서 사용한다.

우리가 사용하고자하는 메소드나 필드가 static영역에 있을 경우에 이 class를 사용해서 사용하면 된다.

우리가 자주 사용하는 System.out.println()에서 사용하는 System 도 class이름중 하나이다.

'수업내용' 카테고리의 다른 글

20230428 수업내용😂😂  (0) 2023.05.01
20230427 수업내용🤦‍♂️  (0) 2023.04.27
20230425 수업내용🤷‍♀️  (0) 2023.04.25
20230424수업내용2🤷‍♀️  (0) 2023.04.24
20230234 수업내용  (0) 2023.04.24

댓글