Java/Java class
Java - 객체 생성과 사용
leebean
2022. 3. 29. 09:47
(이 글의 내용은 YouTube의 남궁성의 정석코딩 채널의 강의를 듣고 배운 내용을 포스트 하겠습니다.)
https://youtube.com/playlist?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp
자바의 정석 기초편(2020최신)
최고의 자바강좌를 무료로 들을 수 있습니다. 어떤 유료강좌보다도 낫습니다.
www.youtube.com
객체 생성
클래스를 활용하려면 객체를 만들어야 하는데 지금부터 객체를 생성하는 것을 보여드리겠습니다.
//클래스명 변수명;
//변수명 = new 클래스명();
//클래스명 변수명 = new 클래스명();
test t1; // test클래스 타입의 참조변수 t1을 선언
t1 = new test(); // test인스턴스를 생성한 후, 생성된 test인스턴스의 주소를 t1에 저장
test t1 = new test();// t1 참조변수 선언과 동시에 test인스턴스의 주소를 참조변수 t1에 저장
- 클래스명 변수명; 은 클래스의 객체를 참조하기 위해 참조변수를 먼저 선언합니다.
- 변수명 = new 클래스명(); 은 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장합니다.
- 클래스명 변수명 = new 클래스명(); 은 클래스의 참조변수를 선언과 동시에 인스턴스의 주소를 참조변수에 저장하는 방법입니다.
객체의 특징 및 주의사항
- 객체는 인스턴스라고 부릅니다, 결국 객체는 인스턴스라고 봐도 무안합니다.

- 하나의 인스턴스가 여러 개의 참조변수를 가리키는 것은 가능합니다.

- 여러개의 인스턴스를 하나의 참조변수에 저장하는 것은 불가능합니다.

- 객체지향 개념에서 참조변수가 없으면 객체를 사용할 수 없습니다.
- 사용할 수 없는 메모리는 GC(가비지 컬렉터)를 통해 메모리의 불필요한 공간을 최소화할 수 있습니다.
(객체 생성 예시 1 : 객체의 기본적인 사용법)
class num{
int num1; // 멤버변수
String str1; // 멤버변수
boolean trfa; // 멤버변수
void display(){ // 멤버메서드
System.out.printf("display 함수호출%n");
}
}
public class test {
public static void main(String[] args) {
num n = new num();
// num클래스 타입의 참조변수 n선언 후 num인스턴스를 생성하고
// 생성된 num인스턴스의 주소를 n에 저장
System.out.printf("%d%n",n.num1);
// n인스턴스의 num1 멤버변수를 출력
System.out.printf("%s%n",n.str1);
// n인스턴스의 str1 멤버변수를 출력
System.out.printf("%s%n",n.trfa);
// n인스턴스의 trfa 멤버변수를 출력
n.display();
// n인스턴스의 display 멤버 메서드를 호출
}
}
(객체 생성 예시 : 초기값, 반복할 횟수를 입력하면 초기값에 1씩 반복할 횟수만큼 더하여 결과를 리턴)
import java.util.Scanner;
class Wheel{ // Wheel 클래스 선언
int op1; // 멤버변수
int op2; // 멤버변수
int turn(int sum, int turn_count){ // 멤버 메서드
int result = 0;
for(int cnt = 1; cnt <= turn_count; cnt++){
// cnt를 1로하고 매개변수로 입력한 turn_count만큼 반복
result = sum + cnt;
// 멤버 메서드에 입력한 매개변수를 1씩 더한 값을 result에 저장
}
return result; // result를 리턴
}
}
public class test {
public static void main(String[] args) {
Wheel wheel = new Wheel(); // wheel참조변수를 선언과 동시에 Wheel인스턴스 주소를 wheel참조변수에 저장
Scanner scan = new Scanner(System.in); // scan 객체 선언
System.out.printf("초기값을 작성하십시오 : ");
wheel.op1 = scan.nextInt(); // Wheel 클래스의 op1멤버변수에 정수형 입력값을 저장
System.out.printf("반복할 횟수를 작성하십시오 : ");
wheel.op2 = scan.nextInt(); // Wheel 클래스의 op2멤버변수에 정수형 입력값을 저장
int num = wheel.turn(wheel.op1,wheel.op2);
// Wheel 클래스의 turn 멤버 메소드를 실행한 후 리턴값을 변수 num에 저장
System.out.printf("%d을(를) 1씩 %d번 더하면 %d가 나옵니다.",wheel.op1,wheel.op2,num);
}
}