basic/java 이론

자바 문법 배운것 총정리

못지(Motji) 2021. 5. 13. 21:09

메모리 로딩 순서

클래스 > static > main()메소드 (없으면 실행안됨) > new 객체

클래스

변수

타입 : 기본형,참조형

인스턴스변수 : new 객체 생성하여 사용, 참조변수명.변수명

클래스변수 : static 붙은것, 객체생성없이 바로 사용 가능, 클래스명.변수명

지역(로컬)변수 : 메소드 블럭안에서 사용, 메소드가 끝나면 사라짐

메소드

호출 > 실행 > 호출한곳으로 돌아감

클래스메소드 > static 붙어 있으며 바로 사용 가능, 클래스명.메소드명()

인스턴스메소드 > 객체생성후 사용 가능, 참조변수명.메소드명()

돌려줄 값이 있으면 값에 맞는 리턴타입을 적어줘야함

돌려줄 값이 없다면 void

리턴타입, 값, 매개변수는 모든 타입이 올 수 있음 > 일반형,참조형,배열 등

초기화

명시적 초기화 int a = 10;

초기화 블럭

static{} {}

static 초기화 블럭, 인스턴스블럭 두가지

생성자() > 안에서 메소드 호출도 가능, new~ 객체생성시 자동으로 호출됨

상속

자식 클래스, 부모 클래스 1:1로 상속가능 > 다중상속 불가능

extends 키워드 사용

최상위 클래스 Object

생성자빼고 전부 물려받음

부모에 있는 생성자 또는 필드를 부를때는 super 키워드 사용

단일 클래스 : Object 외에 클래스를 상속받지 않은것

오버로딩

메소드명은 동일하지만 매개변수의 타입, 개수, 순서가 다른것

같은이름의 메소드를 여러개 가지는것

오버라이딩

부모 클래스에서 상속받은 메소드의 기능을 재정의 해주는것

선언부는 건들지 않고 구현부만 수정 하는것을 말함

 

this : 인스턴스 객체 자신을 가르키는 것

this() : 생성자 안에에서 같은 클래스의 다른 생성자 호출

super 부모를 가르키는 것

super() : 내(자식) 생성자안에서 부모 생성자를 호출

 

캡슐화

무분별한 접근을 막기위한 것, 보안

변수 private

메소드 getter/setter를 통해 접근

 

접근제어자

private : 같은 클래스

default : 같은 패키지

prodeteted : 같은 패키지 + 자식 클래스

public : 모든 클래스

클래스는 public, 기본 접근제어자 두가지만 사용

필드(변수,메소드) 위의 접근제어자 네가지 전부 사용

 

다형성

조상의 변수에 자식 객체를 담을 수 있는 형태

자식의 오버라이딩된 메소드 사용

추상클래스

abstract

변수,메소드를 가지고 있음

extends 상속받은 클래스는 > 추상메소드 오버라이딩(구현) 해야함

인터페이스 interface

구조/설계

상수, 추상메소드만 가질 수 있음

interface 이름{}

인터페이스끼리 상속받을 수 있으며 다중상속 허용

inplements 키워드를사용하여 구현

추상메소드 오버라이딩

다중구현 가능

예외처리

try{}catch{}finally{} 키워드 사용

직접 예외처리 하지 않고 throws 키워드를 통해 넘길 수 있음


정리 하며 느낀 점

문법 및 설명을 들었을때는 이해가 잘되는데

실제로 사용하려고 하면 매우 헷갈린다.

 

다형성, 추상클래스, 인터페이스, 예외처리 >> 추가적인 학습이 필요!

그럼 공부하러 고고,,