티스토리 뷰
static 키워드
1. 사용처 : ⑴ 인스턴스 변수 앞에 붙인다.
⑵ 메서드 앞에 붙인다.
⑶ 내부 클래스를 만들때, 클래스앞에 붙일 수 있다.
⑷ 상수 만들 때도 붙인다.
2. 기능 : 인스턴스(메모리에 올리는 것)가 컴파일 단계에서 발생한다.
(new 하기 전에 미리 렘에 올라가게 된다)
3. 효과 : 인스턴스들이 "공유"하는 데이터를 보관하게 된다.
4. 해석 : "미리 만들어진~", "공유 하는 값"
"우리 거"
( 인스턴스 변수는 각각의 개개인)
Integer.parseInt("");
//클래스 메서드라 부른다.
#실습 1)
package staticex;
class ClassBan{
static String ban="A";
// 인스턴스 변수가 아닌 클래스 변수이다 ( 인스턴스가 만들어 질때마다 가서 정보를 제공하겠다 )
String name;
int jumin;
int money;
//contructor
public ClassBan(String name, int jumin, int money) {
super();
this.name = name;
this.jumin = jumin;
this.money = money;
}
public ClassBan(String ban,String name, int jumin, int money) {
super();
this.ban=ban;
this.name = name;
this.jumin = jumin;
this.money = money;
}
//메서드에 static 붙일 수 있음
static public void printBan(){
System.out.println(ban+"반");
}
public void printPerson(){
System.out.println(ban+"반 \t"+name+" "+jumin+" "+money);
}
// 인스턴스 마다 가지고 있는 정보
- static 을 붙이면 인스턴스의 정보를 출력할 때, 경고표시가 뜬다.
}
}
public class StaticTest {
public static void main(String[] args) {
System.out.println(ClassBan.ban);
//인스턴스와 무관하게 미리 변수를 만들어 놓고 대기 하고 있음
System.out.println(ClassBan.name);
//인스턴스가 없으면 사용할 수 없음
ClassBan hgd0 = new ClassBan("홍길동", 908321, 5000);
ClassBan hgd1 = new ClassBan("홍길동1", 806321, 3000);
ClassBan hgd2 = new ClassBan("홍길동2", 504321, 4000);
ClassBan hgd3 = new ClassBan("홍길동3", 302321, 5800);
ClassBan.printBan();
hgd0.printPerson();
hgd1.printPerson();
hgd2.printPerson();
hgd3.printPerson();
}
}
# 과제 ( 작성 중 )
'Programing > Java' 카테고리의 다른 글
Java1 - 21. 재정의(override) (0) | 2017.05.10 |
---|---|
Java1 - 20. Inheritance(상속) (0) | 2017.05.04 |
Java1 - 18. 만들어져있는 클래스 사용 방법 (0) | 2017.05.02 |
Java1 - 17. Contructor (0) | 2017.05.01 |
Java1 - 16. private (0) | 2017.04.28 |