Static 클래스

이동규·2023년 4월 8일

JAVA

목록 보기
3/7

eum class

   enum Week{Mon ,Tue ,Wed,Thu,Fri,Sat,Sun  
    
        };
      
        Week today = Week.Mon;// 객체 생성하고 참조값 할당
        Week nextday = Week.Mon;
        if (today ==nextday) {
            System.out.println(true);
        }

    }

열거 상수는 관례적으로 대문자로 작성한다.
열거 상수는 상수값이기 때문에 한번 설정된 참조 값은 바꿀 수 없다.

클래스의 구조

class Perosn{
static name ="leedongkyu";// 클래스 변수
age =26;

}

클래스 변수는 static만 붙여주면 된다.생성시기: 클래스가 메모리에 바로 올라갈 때 모든 객체(인스턴스)들이 데이터를 공유한다.

class Person{
static String name = "leedongkyu";//class 변수는 인스턴스간 메모리를 공유한다.
int age = 26;    
}

public class App {
    
    public static void main(String[] args) throws Exception {
    Person ldk = new Person();
    Person park = new Person();
    ldk.age --;
    System.out.println(ldk.age +ldk.name);
    park.age++;
    ldk.name = "Parkjisung";
    System.out.printf("%d %s",park.age,park.name);
}
}

인스턴스 변수 인스턴스(객체)가 생성 될 때 메모리에 변수가 올라간다. 객체마다 변수의 메모리 주소가다르다.

클래스와 구조체의 차이점 클래스는 참조형 즉 포인터(주솟값)을 전달한다.구조체는 스택에 저장된다. 그리고 구조체는 멤버변수를 다른변수를 할당 할때는 데이터를 copy하여 전달하지만 클래스는 참조형식이다.

접근제어 지시자의 종류

public: 모두공개

protected: 상속관계에서 얽혀있는 클래스에서만 접근을 허용

priviate: 클래스안에서만 사용가능

public class App {
    private int num =20;
    public int cal(int a ,int b){
        return a+b;
    }
    public static void main(String[] args) throws Exception {
    App s1 = new App();
    System.out.println(s1.num);
    System.out.println(s1.cal(1, 2));
}
}

자바 다차원 배열 생성 방법

int [][] arr = new int [2][3];//2 by 3배열 생성
int [][] arr2 = {{1,2,3},{4,5,6}};

String은 참조형 데이터이다.

String a = "hello";
String b = "hello";
String c = new String("hello")

a 와 b 둘은 같은 메모리를 가르킨다. 따라서 같은 메모리 값이다.그러나 c는 새로운 메모리공간에 값을 넣기 때문에 위와 주소값이 다르다. 따라서 a == b != c이다.

0개의 댓글