기술 블로그

자바 기초2 객체지향 본문

백엔드/JAVA

자바 기초2 객체지향

jaegwan 2018. 11. 3. 21:43
반응형

클래스에 선언된 변수를 "객체변수"(인스턴스 변수, 맴버 변수,속성)라고 부른다. 


객제 변수나 객체 메소드는 .(도트연산자)를 통해 접근할 수 있다.


객체이름.객체변수();


객체 자기자신을 나타낼때 this 키워드 사용 

  • 현재 클래스의 인스턴스를 의미합니다.
  • 즉, 현재 클래스의 멤버변수를 지정할때 사용합니다.


  • 객체생성으로 타 클래스 참조 가능


    상속으로 선언없이 자기 클래스 선언후 참조도 가능




    ㅡㅡㅡ

    1. private 해당 클래스에서만
    2. default 해당 패키지에서만
    3. protected 해당페키지와 상속받은 클래스에서만
    4. public 모두



    ㅡㅡㅡ

    static 변수: 어떤 객체이던지 동일한 값이여야 한다(ex score)

    같은 메모리를 공유하므로 객체를 따로 만들더라도 두개이상의 메모리를 사용하지 않는다.


    static 메소드: 스테틱 메소드 안에서는 인스턴스 변수 접근이 불가능하다(그러나 static 객체변수라면 가능하다.)


    ㅡㅡㅡ

    싱글톤 패턴


    class Singleton { private static Singleton one; //Singleton 타입의 one 을 스태틱으로 선언 private Singleton() { // Singleton클래스로 이 클래스의 생성자가 외부에서 호출되는것을 막는다. } public static Singleton getInstance() { //Singleton 타입을 리턴하는 getInstance 메소드 if(one==null) { one = new Singleton(); //one이 비어있을 경우 Singleton의 one인스턴스를 생성, null값이 아니면 생성 안함 } return one;//one 을 리턴 } } public class SingletonTest { public static void main(String[] args) { Singleton singleton1 = Singleton.getInstance();//싱글톤1에 one을받음 Singleton singleton2 = Singleton.getInstance();//싱글톤2에 one을받음 System.out.println(singleton1 == singleton2);//true로 나옴, 두번 호출하여 각각얻은 객체가 스태틱덕에 같은 객체임 } }


    ㅡㅡㅡ




    예외처리


    ㅡㅡ

    try{} 시도

    catch(Exception e){} 예외

    finally{} 무조건 실행


    //return시 메소드는 종료된다 뒤의 명령어가 무시될 수 있음


    RuntimeException은 실행 시 발생하는 예외이고 Exception은 컴파일 시 발생하는 예외이다. 즉, Exception은 프로그램 작성 시 이미 예측가능한 예외를 작성할 때 사용하고 RuntimeException은 발생 할수도 발생 안 할수도 있는 경우에 작성한다.


    throw new FoolException();


    예측 가능한 Exception의 경우 try catch문으로 감싸주어야한다.



    예외 던지기 (throws)


    public void sayNick(String nick) throws FoolException { if("fool".equals(nick)) { throw new FoolException(); } System.out.println("당신의 별명은 "+nick+" 입니다."); }


    hrows 라는 구문을 이용하여 FoolException을 위로 보낼 수가 있다. ("예외를 뒤로 미루기"라고도 한다.)

    위와 같이 sayNick 메소드를 변경하면 main 메소드에서 컴파일 에러가 발생할 것이다. 



    트랜잭션은 하나의 작업 단위


    상품발송() { try { 포장(); 영수증발행(); 발송(); }catch(예외) { 모두취소(); } } 포장() throws 예외 { ... } 영수증발행() throws 예외 { ... } 발송() throws 예외 { ... }





    final은 최종이라는 뜻이다 final로 선언된 객체변수는 수정될 수 없다.

    반응형

    '백엔드 > JAVA' 카테고리의 다른 글

    자바 콜백  (0) 2018.11.24
    arrayList에 모델클래스로 여러개 담기  (0) 2018.11.17
    자바 기초 1 제어문  (0) 2018.11.03
    점프 투 자바 학습계획  (0) 2018.09.26
    java 복습 4일차  (0) 2018.09.26
    Comments