본문 바로가기

JAVA

자바 기초 문법 3

상속(extends)

-상속관계란 객체 지향 언어로 부모 클래스가 가진 속성과 기능을 받고 자식 클래스가 만든 속성과 기능을 포함하지 않아도 그 기능을 하용 가능하다.
-장점: 검증된 클래스를 이용하여 편리하게 사용 가능함
-생성 순서 : 상속 받은 최상위 순서부터 생성 된다
EX) A > B > C
-부모 클래스에 private이 포한 되어 있으면? : private접근자의 속성과 메서드를 사용할 수 없다
tip! 다이어그램을 그릴때 '상속'은 '실선'으로 나타낸다

@OVERRIDE :메소드 재정의

*부모클래스의 기능을 자식 클래스에서 재정의해서 사용한다.
-부모 클래스의 코드를 자식클래서에서 재정의 했으면 출력할때는 재정의된 자식클래스의 코드만 출력

클래스도 자료형이 된다.(데이터 타입)

부모 클래스를 자기클래스 a,b가 상속을 받으면

부모클래스, 자식a클래스 , 부모 클래스, 자식b클래스 가 나온다.

<object / 모든 클래스의 상위 클래스>

-예를 들어 extends를 b클래스에서 a클래스를 상속했지만 가장 상위에 있는 클래스는 object클래스이다.
<supper /상위 클래스를 호출할 때>
this : 현재 내가 있는 클래스
super: 상위 클래스

<anonymouse class : 이름 없이 객체만 생성>

//익명 클래스
new Anonymous() {
}
주로 인터페이스나 추상클래스에서 이용
이름없는 클래스로 주로 메서드를 재정의 하는 목적으로 사용

**< 인터페이스>

클래스와 달리 객체 생성을 할 수 없음
-구현해야하는 작업 명세서
-class에서 interface가 가지고 있는 추상적인 것을 만들어 줌
인터페이스를 사용하는 이유 : 가장 큰 이유는 객체가 다양할 자료형(타입을 가질 수 있다.)
-implements 키워드를 사용하여 인터페이스를 사용
-인터페이스에 선언만 되어 있는 함수를 클래스가 구현한다.

<추상 클래스>

구체화 되지 않은 멤버를 이용해서 클래스를 만드는 방법
클래스의 공통된 부분을 뽑아서 별도의 클래스를 만들고 이것을 사용한다.

<back클래스 >

해당 클래스에서 알아서 사용한다.

람다식:

람다식:기본적으로 함수를 만들어서 사용
-함수 지향으로 프로그래밍 방법
인터페이스에서 선언된 메소드만 가져다가 사용

<String 객체, 메모리>

-객체는 데이터가 많아 데이터 변화면 메모리 상의 변화가 많아 속도가 느리다
-문자열을 복사하여 새롭게 데이터를 만듦
-String buffer, StringBuilder
(=new StringBuffer("java"))
(sh.sppend("_8"))
문자열이 변경되면 기존의 객체를 사용
-속도는 String Builder가 조금더 빠름
데이터 안정성은 String Buffer가 조금 더 좋음
(메모리가 안정적이기 때문에)

Collections

데이터를 효율적으로 관리하기 위함