*상속

- 객체지향 프로그래밍에서는 기존 클래스를 가져다가 소스코드를 건드리지않고

  추가되는 부분만 따로 작성해서 새로운 클래스를 만들수있음

- 클래스를 가져다가 확장해서 새로운 클래스를 만드는 기술을 상속이라 한다.

 

*슈퍼클래스,서브클래스

- 자바에서는 다른 클래스에게 상속해주는 값을 슈퍼클래스(Account)라 하고

  상속을 받는 클래스를 서브클래스(CheckingAccount)라 한다.

- 상속을 받으면 추가되는 필드와 메소드만을 선언하면 완성할수있다.

- 서브클래스에서 상속받을때 extends와 상속받을 슈퍼클래스이름을 받아야함

 

#계좌 클래스(슈퍼클래스)

 

#직불카드 클래스(서브클래스)

- 메소드 오버라이딩

- 슈퍼클래스에서 존재하는 메소드를 서브클래스에서 재정의

 

 

 

#메소드 오버라이딩2 super 사용

- 슈퍼클래스에 존재하는 메소드를 사용하고 서브클래스에서 재정의 또한 해준다.

 

 

#메인 메소드

 

 

#메소드 오버라이딩1 결과값

- 재정의 해주었기 때문에 값의 변동이 없다.

 

 

#메소드 오버라이딩2 결과값

 

- super클래스에 존재하는 인출값을 가져왔기때문에 100값이 빠져나감

 

 

#final

 

클래스에서 final 사용

 

- 클래스를 상속받지 못하게 할때 final 사용

 

#메소드에서 final 사용

 

 

- 메소드에서 오버라이드를 못하게 할때 사용

 

#변수에서 final 사용

 

- final 선언시 처음 세팅한 값을 바꿀수없음

 

#abstract클래스 (추상 클래스)

- 객체를 만드는것을 인스턴스화 라고한다.

- 해당클래스를 인스턴스화 할수 없지만 상속을 받을수 있도록 해주는 클래스

 

 

- 상속은 받지만 인스턴스화 할수 없음

 

#abstract메소드 (추상 메소드)

- 바디가 없는 메소드형태로 상속을 받은 서브클래스에서 반드시 오버라이드를 해줘야함

- 비슷한 기능을 메소드들은 같은 이름으로 묶음으로 개발시에 규격을 만들수있다.

 

 

- 추상메소드를 오버라이드하지않아 에러발생

 

 

- 오버라이드 할 경우 에러가 나지않음

 

#상속의 다형성

 

- 서브 클래스들은 슈퍼클래스 변수에 대입할수있다.

* 슈퍼클래스 변수에 담겨져 있다고 하더라도 오버라이드한 메소드가 있다면

  생성시 사용한 클래스에 오버라이드된 메소드가 실행된다.

 

- 다형성을 이용해서 객체2개를 생성하고 각각실행하면 오버라이드된 메소드가

  실행되는것을 알수있다.

 

 

 

#인터페이스(interface)

 

- 자바에선 다중상속을 허용하지않는다. 그러므로 비슷한 기능을 가진 메소드들을

  공통으로 정의해주고 싶을때 인터페이스를 사용한다.

 

- 인터페이스는 클래스들의 공통기능(메소드)만 표헌할수있고 공통데이터들은 표현할수없다.

  단 상수들은 선언이 가능하다.

 

- 상속이라는 용어대신 구현(implementation)이라한다.

 

- 인터페이스에 속하는 메소드는 무조건 추상메소드로 선언해야한다. 즉

  인터페이스의 역할은 규격을 만들어주는 역할을 한다.

 

- 인터페이스는 여러개를 구현할수있다. (, 컴마 사용)

 

#선언

 

- 인터페이스의 내부는 무조건 추상메소드라서 abstract를 추가하지않아도

  컴파일러가 자동으로 추가해준다.

 

 

 

 

- abstract를 추가해주지않아도 자동으로 추가됨

 

 

#인터페이스 사용 예

 

1.인터페이스만 구현할때

- implements 사용

 

2.상속과 인터페이스를 같이 구현할때

- extends로 상속받고 implements 사용

 

3.인터페이스를 여러개 구현할때

- ( , ) 컴마 사용

 

 

#인터페이스의 다형성

 

- Test -> Test2,Test3 구현

 

 

 

 

 

 

 

 

 

#인터페이스 상속

 

- 클래스에서 상속받은 서브클래스를 구현했을때 해당 서브클래스와 슈퍼클래스의 메소드

  까지 오버라이드 해서 구현해야한다.

 

 

 

'Java > Java1' 카테고리의 다른 글

Java [메소드]  (0) 2017.09.06
Java [switch,배열정렬,Calendar]  (0) 2017.09.03
Java [반복문,for,while]  (0) 2017.08.30
Java [문자열 가공,배열]  (0) 2017.08.28
Java [조건문,논리연산자,비교연산자]  (0) 2017.08.27

*메소드 호출문

- 클래스 안에 두개이상의 메소드를 쓸 수있다.

- 필요한 데이터를 메소드를 호출하여 넘겨주는 값(파라미터)

- 메소드는 이름과 파라미터가 동일해야 같은 메소드로 인지

 

# call by value - 파라미터로 기본형 타입을 타입을 보낼때(값 자체가 복사되어서 메소드로 전달된다.)

# call by reference - 파라미터로 레퍼런스 타입을 보낼때(주소값이 복사되어서 메소드로 전달된다.)

 

 

#메소드 호출문 기본 구조

 

메소드이름(파라미터1,파라미터2,파라미터3,) ----- 파라미터값은 하나도없을수있고 여러개가 있을수도있다.

 

 

#메소드 사용 예

 

 

 

 

 

 

 

#메인메소드를 활용해서 사칙연산 프로그램을 작성해보자!

 

 

 

 

 

#메소드를 활용해 배열선언,랜덤숫자뽑기,배열저장,큰수로 배열정리

 

'Java > Java1' 카테고리의 다른 글

Java [상속,인터페이스]  (0) 2017.09.12
Java [switch,배열정렬,Calendar]  (0) 2017.09.03
Java [반복문,for,while]  (0) 2017.08.30
Java [문자열 가공,배열]  (0) 2017.08.28
Java [조건문,논리연산자,비교연산자]  (0) 2017.08.27

*switch문

-if키워드처럼 조건문을 만드는데 사용

-여러개의 조건 설정가능

 

switch문 기본구조(형식)

 

switch (식) ------ 정수가 char 타입의 값을 산출할수있는 식

 

case 값1:

명령문들

break;

 

case 값2:

명령문들

break;

 

case 값3:

명령문들

break;

 

default:

명령문들  

break;

 

switch문은 괄호한에 있는 식을 계산하고 나서 그 식의 결과와 동일한 값을 갖는 case문을 찾아서

그 다음의 명령문을 실행한다.

 

명령문을 실행하다가 break 문을 만나면 switch문을 빠져나간다.

 

만약 괄호 안의 식과 일치하는 값을 갖는 case문이 하나도 없으면 default문 다음의

명령문들이 실행된다.

 

 

switch문 사용 예

 

 

 

int num의 값이 10이기 때문에

case 10을 실행

 

#break가 없는 switch문

 

 

10이상의 모든 case문이 실행

 

 

#스왑

 

 

#스왑 정렬

 

-큰수부터 정렬

 

 

 

#ArrayList 선언

 

 

#시간 관련 SimpleDateFormat

 

 

#Calendar 기능

 

 

 

#캘린더 만들어보기

 

 

'Java > Java1' 카테고리의 다른 글

Java [상속,인터페이스]  (0) 2017.09.12
Java [메소드]  (0) 2017.09.06
Java [반복문,for,while]  (0) 2017.08.30
Java [문자열 가공,배열]  (0) 2017.08.28
Java [조건문,논리연산자,비교연산자]  (0) 2017.08.27

+ Recent posts