Static

ZiSoOm·2021년 5월 30일
0

기초자바

목록 보기
13/15

🧵static

  • static을 붙이면 프로그램 실행 시 메모리에 올라감
    => 객체 생성을 하지 않아도 사용할 수 있음
  • static을 붙인 변수는 객체간에 변수의 값을 공유함
  • static이 붙은 멤버의 명칭 : 클래스 변수, 클래스 메서드
  • static이 붙지 않은 멤버의 명칭 : 인스턴스 변수, 인스턴스 메서드
    (객체를 통해 사용하기 때문에)

연습


🧵ScanUtil 클래스

package oop;

import java.util.Scanner;

public class ScanUtil {
	
	private static Scanner s = new Scanner(System.in);
	
	public static String nextLine() {
		return s.nextLine();
	}
	
	public static int nextInt() {
		return Integer.parseInt(s.nextLine());
	}
	//자주 사용하기 때문에 객체 생성하지 않고 사용하기 위해서
	//static 붙임 ==> 바로 호출 가능
}

🧵Static 클래스

package oop;

public class Static {

	static int var; //클래스 변수 : 값을 공유하기 위해 사용함
	
	public static void main(String[] args) {
		Saram s1 = new Saram();
		Saram s2 = new Saram();
		
		s1.name = "철수";
		s2.name = "영희";
		
		s1.saveMoney(1000000); //철수의 계좌 잔고 :  1000000
		s2.saveMoney(2000000); //영희의 계좌 잔고 :  2000000
		
		s1.saveDateMoney(2000000); //데이트 통장 잔고 : 2000000
		s2.saveDateMoney(2000000); //데이트 통장 잔고 : 4000000
		
		/*****************************************************/
		
		System.out.println(Math.random());
		//랜덤이라는 메서드에 static이 붙어있어서 클래스 이름을 통해 객체 생성 없이 바로 호출 가능
		
		/*****************************************************/
		//ScanUtil 클래스 만든거 사용하기
		System.out.println("문자열 입력>");
		String str = ScanUtil.nextLine();
		System.out.println(str);
		
		System.out.println("숫자 입력>");
		int num = ScanUtil.nextInt();
		System.out.println(num);
		
	}
}

class Saram {
	String name; //이름
	int account; //계좌 잔고
	
	void saveMoney(int money) {
		account += money;
		System.out.println(name + "의 계좌 잔고 : " + account);
	}
	
	static int dateAccount; 
	//철수와 영희가 사귀게 되서 데이트 통장 만들어서 같이 사용(통장 공유 => static 붙여줌)
	//객체에서 static 사용 ==> 값을 공유하기 위해 사용
	void saveDateMoney(int money) {
		dateAccount += money;
		System.out.println("데이트 통장 잔고 : " + dateAccount);
	}
}

0개의 댓글

관련 채용 정보