D+10:: 중첩클래스/클래스변수(static)

Am.Vinch·2022년 7월 8일
0

20220708
프로젝트명 ClassStudy03
//static 의 기능.

public class BankTest {

public static void main(String[] args) {

// -주의사항-
//생성자있으면, Acc 대로 값을 설정해라.

	//2000년도
	Acc a1 = new Acc();
	Acc a2 = new Acc();
	a1.name="ss";
	Acc.iyul = 10;// 10이지만 static변수 초기화 값 5.0으로만 출력됨.
	Acc a3 = new Acc();
	//... 1만명 있을 때
	
	//2020년
	//이자율이 10%로 올랐을 때 2000년에 가입한 고객의 이율을 10%로 올리자.

	System.out.println(Acc.iyul); //iyul은 공용변수(static)이기때문에 객체명 c1. 이 아니라 클래스명 Acc. 으로 넣어줘야 좋다.노란밑줄안생김.
	System.out.println(Acc.iyul);//그래서 system 은 클래스명 out은 static변수이다.
	System.out.println(Acc.iyul);
	
}

}
//멤버변수의 초기화는 생성자에서 진행을 하면 좋다.
//static 변수는 초기화 작업을 생성자에서 하면 안됨.!!!!
//static을 가장 우선순위.
//static과 static이 아닌 것이 섞여있으면 오류남.
class Acc{
String name;
int money;
static double iyul;//이율
//static을 입력시 1만명의 이율이 10%로 변경됨.(공유)

//static변수 초기화 위치
	static {
	iyul = 5.0;
	}


	public Acc() {
		money = 1000;
		iyul = 5.0;
	
	}

}
//220708_Fri
public class CntTest {
//public이 붙은 클래스는 하나밖에 못 만든다.
public static void main(String[] args) {
// TODO Auto-generated method stub
InstCnt c1 = new InstCnt();
InstCnt c2 = new InstCnt();
InstCnt c3 = new InstCnt();
}
}
//클래스 변수(static 변수)
//하나의 파일에 두 개의 클래스 만들 수 있다.
class InstCnt{
static int num =0;//static : 공유하는 기능.

public InstCnt() {//생성자(리턴타입 x ,클래스명 일치)
	num++;
	System.out.println("객체생성: " + num);//콘솔창 -> 객체생성: 1

}

// --변수 복습
// public int num1;
// private int num2;
// final int num3; //상수를 만들때 사용하는 변수/한번값이들어가면 그 다음부터는 변경이 안된다.
}

profile
Dev.Vinch

0개의 댓글