728x90
반응형
package kh.oop1.day03.exam;
public class FieldExam {
//[접근제한자] [예약어] 자료형 변수명 [=초기값];
//클래스 변수(모든 객체가 공통적으로 속성을 가질 때
//사용을 하고 생성할 때 메모리 영역에 같이 생성되기 때문에
//꼭 필요한 공통적인 속성을 가진 변수에 사용해야한다.
public static int var1;
//멤버변수(인스턴스변수)
//각각의 객체(인스턴스)마다 개별적인 속성을 가져야할때
//멤버변수(인스턴스변수)를 사용하게 된다.
public int var2;
private int var3; // 캡슐화 원칙으로 private사용
int var4; //접근제한자 생략 시 default 접근제한자
//생성자
public FieldExam() {
String var5 = "생성자 지역변수"; //지역변수
System.out.println(var5);
}
//초기화블럭
{
String var6 = "초기화 블럭 지역변수";//지역변수
System.out.println(var6);
}
//메소드
public String method() {
String var7 = "메소드안의 지역변수"; //지역변수
return var7;
}
public static String method1() {
String var8 = "static 안의 지역변수"; //지역변수
return var8;
}
}
package kh.oop1.day03.run;
import kh.oop1.day03.exam.FieldExam;
public class Run {
public static void main(String[] args) {
//클래스 변수를 사용하려고하면 클래스명을 써주고
//.을 입력 후 해당 클래스 변수, 메소드를 사용할수있다.
System.out.println(FieldExam.var1);
System.out.println(FieldExam.method1());
//멤버변수는 객체를 생성해서 heap메모리 영역에
//생성한 후에 접근 가능하다.
//객체를 생성한 후에 변수나 메소드에 접근할 수 있다.
FieldExam fe = new FieldExam();
System.out.println(fe.var2);
System.out.println(fe.method());
}
}
/*
0
static 안의 지역변수
초기화 블럭 지역변수
생성자 지역변수
0
메소드안의 지역변수
*/
package kh.oop1.day03.exam;
public class BlockExam {
public static String name = "홍길동";
public BlockExam() {
System.out.println("생성자 영역");
}
int age = 19;
static {
System.out.println("static block 영역");
name = "박길동";
}
{
System.out.println(age);
System.out.println("인스턴스 블럭1");
this.age = 22;
System.out.println(age);
}
{
System.out.println("인스턴스 블럭2");
}
}
package kh.oop1.day03.run;
import kh.oop1.day03.exam.BlockExam;
import kh.oop1.day03.exam.FieldExam;
public class Run {
public static void main(String[] args) {
BlockExam be = new BlockExam();
System.out.println(be.name);
}
}
/*
static block 영역
19
인스턴스 블럭1
22
인스턴스 블럭2
생성자 영역
박길동
*/
package kh.oop1.day03.exam;
public class BasicVariable {
public static boolean bool;
public static byte by;
public static char ch;
public static double d;
public static float f;
public static int i;
public static long l;
public static short sh;
public static String str;
}
package kh.oop1.day03.run;
import kh.oop1.day03.exam.BasicVariable;
import kh.oop1.day03.exam.BlockExam;
import kh.oop1.day03.exam.FieldExam;
public class Run {
public static void main(String[] args) {
//JVM 기본값 확인
System.out.println("Bool : " + BasicVariable.bool);
System.out.println("Byte : " + BasicVariable.by);
System.out.println("Character : " + BasicVariable.ch);
System.out.println("Double : " + BasicVariable.d);
System.out.println("Float : " + BasicVariable.f);
System.out.println("Integer : " + BasicVariable.i);
System.out.println("Long : " + BasicVariable.l);
System.out.println("Short : " + BasicVariable.sh);
System.out.println("String : " + BasicVariable.str);
}
}
/*
Bool : false
Byte : 0
Character :
Double : 0.0
Float : 0.0
Integer : 0
Long : 0
Short : 0
String : null
*/
728x90
반응형
'Dev > Java' 카테고리의 다른 글
[객체(6)] 메소드(Method) (0) | 2022.05.10 |
---|---|
[객체(5)] 생성자(Constructor) (0) | 2022.05.10 |
[객체(3)] package와 import (0) | 2022.05.10 |
[객체(2)] 클래스, 선언, 접근제한자, 생성자, getter, setter (0) | 2022.05.10 |
[객체(1)] 객체 지향 언어, 절차 지향 언어, 클래스, 추상화, 캡슐화, 객체 (0) | 2022.05.10 |