본문 바로가기
Java Tutorial

[Java 필수 기초 지식] 클래스 (생성자, 필드, 메소드)

by 미소5 2023. 6. 6.
  • 생성자:   객체가 생성될때마다 호출되는 '인스턴스 초기화 메소드'     
  • 인스턴스 초기화란?  인스턴스변수를 초기화하거나 메소드를 호출해서 객체를 사용할 준비를 하는 것

 

  • 클래스이름(매개변수 선언, ...) {   

                                      //객체생성시 수행될 코드 (주로 인스턴스변수의 초기화 코드)

                                                        }

 

  • 생성자의 이름은 클래스이름과 같아야 한다.
  • 반환타입 없지만, void 안붙인다.
  • 모든 클래스에는 생성자 선언이 필수이다.    →클래스 내부에 생성자 하나도 없을때에만, 컴파일러가 기본생성자(=매개변수가 없는 생성자)를 자동추가
    • 클래스이름() { }

 


  • 생성자 호출하기:     Time t=new Time(12, 34, 56);
  1.  객체를 생성.      Time t=new Time();
  2.  인스턴스변수를 초기화.     t.hour=12;  t.minute=34;  t.second=56;
  3.  생성자를 호출.  Time t=new Time(12, 34, 56);

 


 

  • 객체의 생성과 사용
  • 클래스명 변수명;           //(클래스의 객체를 참조할)참조변수 선언         
    • Tv t;
  • 변수명=new 클래스명;          //클래스의 객체를 생성후(new), 객체의 주소를 참조변수에 저장         
    • t=new Tv();
  • 객체의 사용
    • t.channel=7;          //Tv객체의 멤버변수 channel의 값은 7
    • t.channelUp();          //Tv객체의 메소드 channelUp() 을 호출

 

 

 


Java 필수 기초 지식 -접근제어자 (tistory.com)

 

Java 필수 기초 지식 -접근제어자

제어자= 접근제어자(public, protected, private) +그외 static, final, abstract 등등 클래스와 클래스의 멤버에 부가적인 의미 부여한다 하나의 대상에 여러 제어자 같이 사용 가능하나, 접근제어자는 1개만!

joly156.tistory.com

 

  •  메소드
    • 반환타입 메소드명(매개변수선언, ...)  { }
    • 반환타입 없으면, void
      • 즉, 반환타입이 void이면 return문 생략  (반환타입있으면, 반드시 return문 필요!)

 

  • 인스턴스메소드
  • 객체 생성 후,   '참조변수.메소드이름()'으로 호출
  • 인스턴스멤버(iv, im)와 관련된 작업
  • 메소드 내에서 인스턴스변수,클래스변수 사용 가능
  • 생성자

 

  • static메소드 (클래스메소드)
  • 객체생성없이,   '클래스이름.메소드이름()'으로 호출
  • 인스턴스멤버(iv, im)와 관련없는 작업    →메소드 내에서는 인스턴스 멤버들을 직접 사용할수없다.
    • 인스턴스변수,클래스변수 사용 불가능 (객체생성해야 사용가능)
    • 인스턴스메소드 호출 불가능 / static메소드 호출 가능    
    •  static메소드 호출 시, 객체가 없을수도 있기 때문

 

 


 

  • 선언위치에 따른 변수의 종류
변수의 종류 선언위치(영역) 초기화시점 생성시기
클래스 변수 클래스 영역 클래스가 처음 로딩될때 한번 클래스가 메모리에 올라갈 때
인스턴스 변수 인스턴스가 생성될때마다 인스턴스가 생성되었을때
지역변수 클래스영역 이외의 영역(메소드) 수동초기화 필수! 변수선언문이 수행되었을때
  • 클래스변수는 static+변수

 


 

  • 초기화
    • 멤버변수(인스턴스변수,클래스변수)는 자동초기화된다 (지역변수는 수동초기화해야함)
      • 멤버 변수메소드 밖에서 선언된 변수를 말한다. 메소드 안에 선언된 변수는 지역변수

 

  •  멤버변수의 초기화
    1.  자동초기화
      • 기본형변수의 기본값은 0, 참조형변수의 기본값은 null
    2. 간단초기화 (=)
      • Engine e=new Engine();
    3. 복잡초기화
      • 초기화블럭: 여러 문장 넣을때
        • 인스턴스 초기화 블럭:     { }
        • 클래스 초기화 블럭:     static { }
      • 생성자

 


 

  • 생성자 this()
    • 생성자에서 다른 생성자를 호출할때, 클래스이름이 아닌 this를 사용!
    • 다른생성자 호출 시 첫줄에서만 사용가능

 

  • 참조변수 this
    • 인스턴스 자신을 가리키는 참조변수    
      • this.인스턴스변수
    • 인스턴스메소드(생성자)에서 사용가능
    • 지역변수와 인스턴스변수를 구별할때 사용

 


 

  • 조상의 생성자 super()
    • 조상의 생성자를 호출한다
    • 조상의 멤버는 조상의 생성자를 호출해서 초기화
    • 생성자의 첫줄에 반드시 생성자를 호출하여야 한다.  (그렇지않으면, 컴파일러가 생성자의 첫줄에 super(); 자동추가)

 

  • 참조변수 super
    • 객체자신을 가리키는 참조변수
    • 조상의 멤버를 자신의 멤버와 구별할때 사용
    • 인스턴스메소드 내에만 존재 (static메소드 내에 사용불가)

 


 

728x90
반응형

'Java Tutorial' 카테고리의 다른 글

[Java] StringBuilder 클래스  (0) 2023.07.24
[Java] 예외 처리  (0) 2023.07.02
[Java] 람다식  (0) 2023.03.14
[Java] Set컬렉션  (0) 2023.02.19
[Java] List컬렉션  (0) 2023.02.18