기술 블로그
자바 기초2 객체지향 본문
클래스에 선언된 변수를 "객체변수"(인스턴스 변수, 맴버 변수,속성)라고 부른다.
객제 변수나 객체 메소드는 .(도트연산자)를 통해 접근할 수 있다.
객체이름.객체변수();
객체 자기자신을 나타낼때 this 키워드 사용
객체생성으로 타 클래스 참조 가능
상속으로 선언없이 자기 클래스 선언후 참조도 가능
ㅡㅡㅡ
- private 해당 클래스에서만
- default 해당 패키지에서만
- protected 해당페키지와 상속받은 클래스에서만
- 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)
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 |