본문 바로가기
728x90
반응형

자바 객체지향 문법6

자바 객체지향 문법 - 팩토리 메서드 패턴, 자바 리플렉션 팩토리 메서드 패턴 - 공장이 하는 일은? - 복잡한 생산 과정을 숨기고 , 완성된 인스턴스만 반환한다. - 뉴 연산자를 통해 객체를 생성하지 않고 팩토리에서 리턴 받아 사용하는 것 클래스 로더를 통한 인스턴스 생성하기 String className = "com.expample.Bus"; clsss clazz = Class.forName(className); Object o = clazz.newInstance(); Bus b = (Bus)o; b.a(); 한줄요약 : 클래스 정보를 얻고 그 정보로 인스턴스를 만들거나 메소드를 실행 - 문자열로된 메소드 이름만 갖고도 실행할 수 있는 방법이 있다. 이러한 문법을 자바 리플렉션이라 한다. 이러한 것을 내부적으로 서블릿이나 스프링에서 사용하더라 라는 것을 알면.. 2023. 2. 16.
자바 객체지향 문법 - final, String, 접근제한자, 인터페이스 부모가 될 수 없는 클래스 - 상속을 금지 시키려면 클래스를 정의할 때 final 키워드를 사용한다. - public fianl class 클래스명 {} String 클래스는 왜 final 일까? - 다음 예제를 보며 알아보자 String str1 = "hello"; String str2 = "hello"; String str3 = new String("hello"); String str4 = new String("hello"); 다음과 같은 코드에서 str1,2,3,4를 출력한다면? 답 : hello hello hello hello 가 나오게 됨 만약 if(str1 == str2){ } if(str1 == str3){ } if(str3 == str4){ } 이경우에는 첫번째 if문만 참이된다. 이유는 .. 2023. 2. 16.
자바 객체지향 문법 - 생성자, 추상 생성자 - 인스턴스를 생성할 때 사용한다. - 어떤 값을 가지고 인스턴스가 만들어지게 하고 싶다면 생성자를 사용한다. - 클래스 작성시 생성자를 하나도 만들지 않았다면 자동으로 기본 생성자가 생성된다. - 기본생성자는 매개변수를 하나도 받지 않는 생성자를 말한다. - 생성자를 하나라도 만들어 준다면 기본 생성자는 사라지고 만들어준 생성자를 사용하게 된다. - 이때 private로 만들어진 필드는 외부에서접근이 불가능 하기 때문에 setter getter를 사용한다. 생성자 오버로딩 - 생성자는 매개변수의 개수가 다르거나, 타입이 다르다면 여러개를 가질 수 있다. 자신의 생성자를 호출 할때는 this()를 사용한다. - this는 인스턴스 자기 자신을 참조할 때 사용하는 키워드이다. - this() 생성자.. 2023. 2. 16.
객체지향 문법 - 필드 선언 필드 선언 방법 [접근제한자] [static] [final] 타입 필드명 [=초기값]; - 대괄호 안에 있는 내용은 생략가능하다는 뜻이다. - 접근제한자는 public, protected, 아무것도 없는 경우(default), private이 올 수 있다. - 필드명은 식별자 규칙을 따른다. 다만 필드 첫번째 글자는 소문자로 시작하는것이 프로그래머 관례 - 타입(type)은 기본형(boolean, byte,char,int,long,float,double)과 참조타입(class, 인터페이스, 배열)등이 나올 수 있다. - 초기값이 없을 경우 참조형일 땐 null , boolean일땐 false, 기본형은 모두 0으로 초기화 된다. 값을 참조하지 않을 때 NullPointException을 볼 수 있다. s.. 2023. 2. 16.
Java 객체지향 프로그래밍 기초: 클래스, 메서드, 객체와 객체 사이의 커뮤니케이션 이해하기 클래스는 필드와 메서드를 가진다. 필드는 클래스의 속성이라고 말할 수 있다. 메서드는 클래스의 기능이라고 말할 수 있다. *구조 접근제한자 class 클래스 이름 { 필드들; 생성자들; 메소드들; } 자판기로 이해하기 자판기의 동작을 생각해보자 - 동전 넣기 - 잔액 보여주기 - 물건 선택 버튼 클릭하기 - 물건을 뱉기 이런 기능들을 메서드라 함 개발자는 필요한 기능을 만들어야함 이러한 의미로 요구사항 정의가 굉장히 중요함 여기서 동사는 메서드와 관련 여기서 명사는 객체와 관련 자판기는 어떤 객체로 구성되어 있는가? - 액정표시장치 - 동전통 - 상품배출기 - 상품케이스 - 상품 - 동전 - 동전배출기 - 상품선택버튼 - 동전배출버튼 - 이걸 담고 있는 자판기 우리가 프로그램을 만든다는 것은 객체와 객체.. 2023. 2. 14.
Java OOP 핵심 개념 다루기: 추상화, 캡슐화, 오버로딩, 상속, 오버라이딩 및 프로퍼티 예시 Book b = new Book(); Heap 이라는 메모리에 Book 인스턴스가 하나 생성되게 됨 Heap 메모리에 생성된 Book 인스턴스를 참조하는 변수가 b인 것 변수 b 앞의 Book을 레퍼런스 타입이라고 함 Book()은 생성자라고 함 new Book(); 은 인스턴스를 만들라는 것 new Book(); 만 선언 하면 메모리에는 있지만 사용할 수 없는 쓰레기(garbage)라고 함 추상화란 ? - 중요한 것은 남기고 불필요한 것은 제거한다. 캡슐화란 ? - 관련된 것을 잘 모아서 가지고 있는 것을 캡슐화(encapsulation)라고 말합니다. 관련된 것을 잘 모아서 가지고 있을수록 응집도(Cohesion)가 높다고 표현한다. 오버로딩이란 ? - 같은 이름의 메소드가 여러개 있는데 매개 .. 2023. 2. 14.
728x90
반응형