Web develop/JAVA

[JAVA] 자바 클래스 객체생성법

ForA 2019. 4. 24. 19:30
728x90

: 멤버(field,method)들에 대한 메모리 할당

동적메모리 할당

  • 사용안하는 객체에 대해서 가비지컬렉터가 자동 소멸 관리

  • 키워드 : new

  • 사용법 : 참조변수를 통해 사용

A a = new A();
a.hello();

정적메모리 할당

  • 자주 사용되는 필드,메소드에 대해 정의

  • 객체들간의 통신에 사용 (공유 데이터를 표현)

  • 키워드 : static

  • 사용법: 클래스명으로 참조

    클래스명.필드명
    클래스명.메소드명(); //클래스변수,클래스메소드
                       //static변수, static메소드
    class B{
        public static int su=100; 
        public static void goodBye(){}
     }   

클래스 객체 비교

클래스참조변수1 == 클래스참조변수2 //메모리 주소 비교!!
A a1 = new A(); 
A a2 = new A();
System.out.println(a1 == a2); 
//결과값 false : 서로 다른 메모리 주소
a2 = a1; //a1이 갖는 주소를 a2에 전달
System.out.println(a1 == a2); 
//결과값 true : 서로 같은 메모리 주소

속성변수1 == 속성변수2 //데이터 값 비교
int su1=30; 
int su2=30;
System.out.println(su1==su2); 
//결과값 true : 같은 값을 갖는다.

클래스참조변수1.equals(클래스참조변수2) //문자열데이터 내용 비교
String s1 = new String("java");
String s2 = new String("java");
System.out.println(s1.equals(s2)); 
//결과값 true  : 문자,길이비교