JAVA/코드

2022_10_13 연습 03 day08.static_.method

0304호 2022. 10. 13.

정적메서드

static 제한자는 변수, 메서드에 적용되는 키워드
  static 메서드나 변수는 해당클래스의 객체 없이도 참조 가능
 정적변수 (static field)
  static변수는 모든 객체들이 공유하느 공유변수가됨
  객체생성없이 클래스 이름만으로 참조가 가능
  클래스 이름만으로 참조가 가능해서 클래스변수 라고도 부름
 //static은 객체 생성 없이 바로 접근가능하다.
  클래스명.변수     //  클래스명.메서드()  
  static 블록(static 메서드, 정적 초기화자) 안에는 static 변수만 사용해야하고,
  static 메서드만 호출할 수 있다. 
  static 블록에서 non-static 멤버를 객체 생성 없이 직접 참조할수 없다.
  static 제한자는 지정된 변수와 메서드를 객체와 무관하기 때문에 this를 가질수 없다
 static 메서드는 non-static 메서드로 재정의(Overriding) 될 수 없다


  대표적인 static 메서드는 애플리케이션의 main() 메서드

 Static 멤버는 객체생성 없이 클래스명.이름으로 참조가능하다
 static 변수는 객체간 값의 공유의 의미
 static메서드는 같은 static멤버만 참조가능하다
  클래스명.이름으로 참조한다
 static메서드의 대표적인 예 : 
   Math.rancom();
   Arrays.toString(배열명);
   Integer.parseInt(문자열);

package day08.static_.method;

import java.util.Arrays;

public class MainClass {
	
	public static void main(String[] args) {
		
		Count c = new Count();
		c.some1();	//일반메서드
		c.some2();	//정적메서드
		
		//정적메서드 - 객체생성없이 사용
		Count.some2();	
		
		//main은 static이기 때문에
		a();
		
		//static사용방법
		Math.random();
		Integer.parseInt("3");
		Arrays.toString(new int[3]);
	}
	
	public static void a() {
		
	}

}
package day08.static_.method;

public class Count {
	
	public int a;			//일반변수
	public static int b;	//정적변수
	
	//일반메서드 - 일반변수, 정적변수 둘다 사용가능
	public int some1() {
		a=10;
		return ++b;
	}
	//정적메서드 - 정적변수만 사용가능 (단, 객체 생성을 통해서는 일반변수도 사용 가능)
	public static int some2() {
//		a=10;		//일반변수라 사용 불가능
		Count c = new Count();
		c.a = 10;
		return++b;
	}

}

 

댓글