자바-9일차 이클립스

최성현·2023년 6월 27일
0

Java

목록 보기
14/46

instance변수 static변수

instance변수

자료형 참조변수;
String 참조변수;

instance 변수선언하면 instance변수로만 사용 가능
일반 instance 멤버변수는 객체 생성후 각각 다른 값을 가질 수 있다
초기값을 안주면 (=null) 생략 되있음

static변수

static 자료형 대문자참조변수;
static final 자료형 대문자참조변수;

static final String MESSAGE="Happy Day!!!";

static 멤버변수는 주로 상수로 선언할 때
사용하며 instance변수 없이 class명으로 접근가능

생성하지 않아도 호출 가능

ex)ExObject_01.MESSAGE - new없어도 부르면 바로 사용 가능
ex)클래스명.변수이름

수정 불가능

여러 객체가 같은 값을 가져야 할 경우 주로 static으로 선언하다

final - static을 더 고정해주는 것

static 변수로 크기 지정 가능

클래스변수 호출

instance

ExObject_01 ex1=new ExObject_01();

ex1.name="김철수"; //객체생성

default생성자는 ()처럼 값이 빈 것
ExObject_01() 엔터하면 안보이지만 생성이 됨 <=이게 없다면 생성 불가능

클래스 변수선언은 값을 안주면 기본값만 있음

static

다른 클래스

static final String MESSAGE="Happy Day!!!";

메인 클래스

System.out.println("static변수는 new로 생성없이 호출가능");
System.out.println(ExObject_01.MESSAGE);
System.out.println(MESSAGE);

MESSAGE="Nice Day!!!";
수정 불가능(오류)
final이라 값 변경 불가능

package day0627;

import javax.print.attribute.standard.Media;

public class ExObject_01 {
	
	
	String name; //instance 변수선언하면 instance변수로만 사용 가능//일반 instance 멤버변수는 객체 생성후 각각 다른 값을 가질 수 있다
				 //초기값을 안주면 (=null) 생략 되있음
	
	
	//ExObject_01() 엔터하면 안보이지만 생성이 됨
	
	
	public ExObject_01() {
		// TODO Auto-generated constructor stub
	}
	
	//static 멤버변수는 주로 상수로 선언할 때 사용하며 instance변수 없이 class명으로 접근가능
	//생성하지 않아도 호출 가능 ex)ExObject_01.MESSAGE - new없어도 부르면 바로 사용 가능
						   //클래스명.변수이름
	//수정 불가능
	//여러 객체가 같은 값을 가져야 할 경우 주로 static으로 선언하다
	//final - static을 더 고정해주는 것
	//static 변수로 크기 지정 가능
	static final String MESSAGE="Haapy Day!!!"; //주로 상수에 많이 옴(static final) 공유하기 위해서 /상수는 올 대문자
	

	public static void main(String[] args) {

		//다른 클래스에서는 호출 불가능
		System.out.println("static변수는 new로 생성없이 호출가능");
		System.out.println(ExObject_01.MESSAGE);
		System.out.println(MESSAGE);
		//MESSAGE="Nice Day!!!"; //수정 불가능(오류) //final이라 값 변경 불가능
		
		//클래스명 참조변수명=new 클래스명();
		//클래스 = 메서드 호출 역할
		//ex1(참조변수)은 호출 역할
		//생성 없이 사용 불가능
		ExObject_01 ex1=new ExObject_01(); //default생성자는 ()처럼 값이 빈 것
										   //ExObject_01() 엔터하면 안보이지만 생성이 됨 <=이게 없다면 생성 불가능
		System.out.println(ex1.name); // 값을 안줘서 기본값 null출력
		
		ex1.name="김철수"; //객체생성
		System.out.println(ex1.name);
		
		ExObject_01 ex2=new ExObject_01();
		ex2.name="홍길동";
		System.out.println(ex2.name);
		
		ExObject_01 cho=new ExObject_01();
		cho.name="졸려";
		System.out.println(cho.name);
		
		System.out.println("다 같이 사용하는 메세지: "+MESSAGE);
		
		
	}

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

0개의 댓글