반응형

Programming 57

[JAVA] 인터페이스란?? 인터페이스의 작성, 구현 / 인터페이스의 상속 / 인터페이스의 다형성 / 인터페이스의 장점

인터페이스(interface)란? 추상 메서드의 집합 실제 구현된 것이 없는 기본 설계도. 추상 메서드와 상수만을 멤버로 가질 수 있다. 두 대상(객체) 간의 연결, 대화, 소통을 돕는 중간 역할을 한다! 선언(설계)와 구현을 분리시키는 것을 가능하게 한다!! 인터페이스와 추상 클래스의 공통점 추상메서드를 가지고 있다! (미완성 설계도) 인터페이스와 추상 클래스의 차이 인터페이스는 추상 메서드의 집합, 추상 클래스는 추상 메서드만 가지고 있음! 인터페이스는 iv를 가질 수 없다. 그럼 우리는 왜 인터페이스를 사용할까? 클래스 작성에 도움을 줄 목적으로 사용된다!! 인터페이스의 작성 클래스 대신 인터페이스를 사용한다는 것 외에 클래스 작성과 동일 interface nameOfInterface { publi..

[JAVA] 추상 클래스란? / 추상 메서드란?? / 추상 클래스의 작성

추상 클래스가 뭔지 알기 전에 추상 클래스를 왜 사용하는지부터 알아보자 추상화라는 뜻은 불명확하고 애매하다라는 의미를 가지고 있다. 왜 우리는 이런 불명확하고 애매한 추상 클래스를 사용할까?? 바로 변경에 유리하기 때문이다. 추상 클래스란(abstract class)? 클래스가 설계도라면 추상 클래스는 '미완성 설계도' 추상 메서드를 포함하고 있는 클래스 abstract class Player { int currentPos; // 현재 Play 되는 위치를 저장하기 위한 변수 Player() {// 추상클래스도 생성자가 필요 currentPos = 0; } } abstract void play(int pos); // 추상메서드 abstract void stop();// 추상메서드 void play() {..

[JAVA] 다형성(polymorphism)이란??

다형성 다형성은 상속과 함께 객체지향의 핵심 개념 중 하나이다. 상속과도 깊은 관계가 있으므로 상속에 대해서도 잘 알고 있어야 한다!! 2022.05.28 - [Programming/Java] - [JAVA] 상속(inheritance)이란? / 상속의 특징 / 상속의 장점 / 예시 [JAVA] 상속(inheritance)이란? / 상속의 특징 / 상속의 장점 / 예시 상속이란?? 상속은 객체지향의 핵심 개념 중 하나!! 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 두 클래스를 조상과 자손으로 관계를 맺어주는 것 상속의 특징 자손은 조상 puenti.tistory.com 다형성(Polymorphism)이란?? 다형성이란, 여러가지 형태를 가질 수 있는 능력이다! 객체지향적인 관점에서 보면..

[JAVA] 상속(inheritance)이란? / 상속의 특징 / 상속의 장점 / 예시

상속이란?? 상속은 객체지향의 핵심 개념 중 하나!! 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 두 클래스를 조상과 자손으로 관계를 맺어주는 것 상속의 특징 자손은 조상의 모든 멤버를 상속 받는다. (생성자, 초기화 블럭은 제외) 자손은 멤버는 조상보다 적을 수 없다. (같거나 많음) 상속의 장점 적은 양의 코드로 새로운 클래스를 작성 할 수 있다. 코드를 공통적으로 관리할 수 있어 코드의 추가 및 변경이 용이하다. → 재사용성을 높이고 중복을 제거하여 유지보수가 편리하다!! class Child extends Parent { } Child 클래스는 Parent 클래스를 상속 받는다!! Child 클래스는 Parent 클래스의 멤버들을 포함한다!! 조상 클래스 부모(parent) 클래스..

[JAVA] 참조변수 super & 생성자 super

자바 객체지향을 공부하다보면 상속을 배우고 상속을 배우다 보면 super라는 개념이 나온다. 처음에 볼때 이게 뭐지? 라는 생각이 드는 생소한 개념이지만 앞선 포스팅의 this와 유사하니 참고 하면 좋을것 같다! 2022.05.14 - [Programming/Java] - [JAVA] this()와 this 의 차이점! [JAVA] this()와 this 의 차이점! this()와 this 의 차이점! 우리는 자바를 공부하다보면 this()와 this를 볼 수 있는데 처음에는 '이게 같은건가?'라는 생각을 할 수 있지만 엄연히 둘은 전혀 관계가 없는 생성자와 참조변수이다! this( ) puenti.tistory.com 참조변수 super this : 인스턴스 자신을 가르키는 참조변수, lv와 iv를 구..

[JAVA] 오버라이딩이란?? / 오버라이딩 vs 오버로드

자바는 객체지향언어(OOP)이다. 객체지향언어는 몇가지 중요한 개념을 가지고 있는데 이번 포스팅은 그중 하나라고 볼 수 있는 '오버라이딩(overriding)'에 대해서 정리해보려고 한다 오버라이딩(overriding)이란?? 오버라이딩이란 조상클래스로부터 상속받은 메서드의 내용을 변경하는 것이다 class Point{ int x; int y; String getLocation(){ return "x :" + x + ", y : " + y; } } class Point3D extends Point{ int z; String getLocation() {//오버라이딩 return "x :" + x + ", y : " + y + ", z : " + z; } } 2차원좌표 위치인 Point class에서 3차원..

[JAVA] 변수 초기화란? / 명시적 초기화 / 변수의 초기화 시기와 순서

변수를 선언하게 되면 우리는 선언한 변수에 값을 저장해줘야 한다. 경우에 따라 선택적이기도 하지만, 가능하면 선언과 동시에 변수를 선언해주는 것이 좋다! 이런 변수를 선언하고 값을 저장해주는 것을 초기화(initialization)라고 한다! 변수의 초기화(initialization) 변수를 선언하고 처음으로 값을 저장하는 것 initialization : 초기치 설정 (전산학) 변수는 인스턴스 변수(iv)와 지역변수(lv)로 나눠지는데 변수마다 초기화 방법이 조금씩 다르다 class InitTest{ int x;// 인스턴스 변수 iv int y = x;// 인스턴스 변수iv void method(){ int i;// 지역변수 lv int j = i; // 에러 } } 위 에러가 난 이유는 지역 변수를..

[JAVA / JSP] 자바 빈즈(Java Beans)란? / 빈즈(Beans)의 장점 / 빈즈(Beans) 클래스 구조

JSP 빈즈란?? JSP와 연동하기 위해 만들어진 자바 컴포넌트 클래스 컨테이너에 위치 JSP에 DB 연동 등 프로그램적 요소를 모듈화 할 수 있도록 도와줌 데이터 처리와 공용화된 기능 제공 프로그램 중복을 줄이고 월활한 유지보수 가능 ※ JSP코드 내에 스크립트릿를 이용해서 자바 소스코드를 직접 포함할 수 있지만 그런 방법 보다는 별도의 빈즈를 만들어 사용하는 것이 모듈화 측면에서 바람직하다! * 컴포넌트(component) 1. 특정 작업인 비지니스 로직을 독립적으로 수행하는 하나의 프로그램 단위 2. 규격화된 인터페이스를 가지며, 조합을 통해 다양한 결과물을 쉽게 만들어 낼 수 있음 * JSP (Java Server Page) 간단하게 설명하면 HTML 안에 자바 코드가 있는 것! JSP 빈즈 사용..

[JAVA] this()와 this 의 차이점!

this()와 this 의 차이점! 우리는 자바를 공부하다보면 this()와 this를 볼 수 있는데 처음에는 '이게 같은건가?'라는 생각을 할 수 있지만 엄연히 둘은 전혀 관계가 없는 생성자와 참조변수이다! this( ) 생성자 생성자의 이름, 클래스 이름 대신 this를 사용한다 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출 가능 Car(String color) { door = 5;// 에러1 Car(color, "auto", 4);// 에러2 } 에러1. 생성자의 두 번째 줄에서 다른 생성자를 호출함 에러2. this(color, "auto", 4); 로 클래스 이름 대신 this를 사용해야함 this 참조변수 인스턴스 자신을 가리키는 참조 변수 지역변수(lv)와 인스턴스 변수(..

[JAVA] 생성자(Constructor) / 생성자의 조건 /기본 생성자(defualt Constructor)

생성자(Constructor)란?? 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다 Time t = new Time(); // 객체 생성 // iv 초기화 t.hour = 12; t.minute = 34; t.second = 56; Time t= new Time(12, 34, 56); // 생성자 호출 생성자는 메서드와 유사하지만 리턴값이 없다는 점이 다르다! 생성자의 조건 생성자의 이름과 클래스의 이름은 같아야 한다 생성자는 리턴값이 없다 (void 안씀) ※ 생성자도 메서드이기 때문에 리턴값이 없다는 의미의 void를 붙여야 하지만, 모든 생성자가 리턴값이 없으므로 void는 생략한다 Card c = new Card(); 연산자가 new에 의해서 메모리에 Card 클래스의 인스턴..

반응형