자바-9일차(3) 이클립스

최성현·2023년 6월 27일
0

Java

목록 보기
16/46

메모리 할당

메모리에 할당이 되더라도 프로그램 종료시 해제

instance변수는 각각 개별의 메모리값 할당
static변수는 공유된 메모리값 할당

package day0627; //메모리에 할당이 되더라도 프로그램 종료시 해제

public class MemoryCnt_04 {
	
	//int count=0;
	
	static int count=0;
	
	//생성자명은 클래스명과 똑같음
	public MemoryCnt_04() {
		count++;
		System.out.println(count);
	}
	
	
	

	public static void main(String[] args) {

		
		MemoryCnt_04 mem1=new MemoryCnt_04();
		MemoryCnt_04 mem2=new MemoryCnt_04();
	}

}

클래스

1개의 클래스에는 public은 1개만 쓰기 때문에 class따로 선언

class ConstA{

int num=0;

-디폴트 생성자
public ConstA() {
num=10; //=>값 초기화
System.out.println("디폴트 생성자");
}

생성자는 생성만을 목적으로 함

디폴트생성자...명시적인 생성자를 만들면 디폴트 생성자는 자동생성되지않는다

필요하면 만들어준다

인자값 안보내고 생성만

-인자있는 생성자 -> ()(파라메터값)을 보냄
--public ConstA(int num) {
--this.num=num; //this는 자기 자신을 의미하는 reference변수
//instance변수만 this 가능
//() 안 값이 int n이면 num=n; 가능
클래스에 instatnce변수 int num=0; 선언 했기 때문
--System.out.println("생성자 호출");
}

//메서드 //return없다(void)
//void가 아니라면 return 값 필요

public int getNumber() {

num=50;

return num;
}

package day0627;

//1개의 클래스에는 public은 1개만 쓰기 때문에 class만
//메인은 실행하는 곳에서만
class ConstA{

	int num=0;
	
	//생성자는 생성만을 목적으로 함
	
	//디폴트생성자...명시적인 생성자를 만들면 디폴트 생성자는 자동생성되지않는다
	//필요하면 만들어준다
	//인자값 안보내고 생성만
	public ConstA() {
		num=10; //=>초기화
		System.out.println("디폴트 생성자");
	}
	
	
	//인자있는생성자
	//()(파라메터값)을 보냄
				//(인자)
	public ConstA(int num) {
		this.num=num; //this는 자기 자신을 의미하는 reference변수
					  //instance변수만 가능
					  //() 안 값이 int n이면 num=n; 가능 //클래스에 instatnce변수 int num=0; 선언 했기 때문
		System.out.println("생성자 호출");
	}
	
	//메서드      //return없다(void)
			//void가 아니라면 return 값 필요
	public int getNumber() {
		
		num=50;
		
		return num;
	}
	
	
}

메인

set 메서드는 수정이 가능하게
get 메서드는 return값 받아서

-set을 만들면 get도 만들어줘야함
-private변수에 주로 쓰임

(밑 설명은 밑에 코드보기)

명시적 생성자(인자값으로 num을 생성자)
->인자 있는 생성자

디폴트 생성자
->수정메서드 필요

메서드 호출

public class ConstTest_05 {

	public static void main(String[] args) {
		
		//set 메서드는 수정이 가능하게
		//get 메서드는 return값 받아서
		
		
		//명시적 생성자(인자값으로 num을 생성자)
		//인자 있는 생성자
		ConstA ca1=new ConstA(30); //생성과 동시에 인자값을 보냄 => 바로 수정 가능
		System.out.println(ca1.num);
		
		//디폴트 생성자 //수정메서드 필요
		ConstA ca2=new ConstA();
		System.out.println(ca2.num);
		
		//메서드 호출
		ConstA ca3=new ConstA(); //디폴트로 생성
		//ca3.num=10000; //public int getNumber()에서 메서드 값이 없다면 여기서 수정가능
		System.out.println(ca3.getNumber());
		
	}

}
profile
백엔드 개발자로서 성장해 나가는 성현이의 블로그~

0개의 댓글