TIL 11/14

드립이 블로그·2022년 11월 14일
0

TIL

목록 보기
10/80

오늘은 자바 문법에 대해 공부하였다.
파이썬 쓰다가 자바를 쓰니까 색다른 느낌이 났다.

Class

표현 대상의 속성을 정의해 놓은 것이다.
class 내부의 정보를 member 변수라고 한다.

instance

class로부터 만들어진 객체이다.
instance변수를 field라고 한다.

method

특정 작업을 진행하기 위해 코드를 묶어 놓은 것이다.
쉽게 말하면 함수이다.
프로그램의 재사용성과 구조화를 위해 사용한다.
method 선언시에는, 동사로 시작해야하고, camel case로 작성해야한다.
필수는 아니지만, 암묵적인 룰 같은 것이다.

constructor(생성자)

instance가 생성될때 불려지는 초기화 method이다.
class의 이름과 똑같아야 한다.
생성자는 return 값을 가지지 않는다.
아무 값도 입력하지 않으면, instance는 기본 값을 가지게 된다.

inheritance(상속)

기존의 class를 재사용하는 방식이다.
부모 class로부터 정의 된 field와 method를 물려받는다.
새로운 field와 method를 추가하는것이 가능하다.
또한 부모 class로부터 물려받은 method의 수정이 가능하다.
키워드는 extends 이다.
상속을 받을 때는 여러 class에서 받을수 없고, 오직 한 class만 상속받을 수 있다.

class A{}
class a extends A{}
class b extends A{}

이 식에서 A는 부모 class이고 a,b는 자식 class가 된다.

overloading과 overriding

overloading은 한 class 내에서 동일한 이름의 method를 여러개 갖는 것을 뜻한다.
field의 개수나 type이 달라야 한다.

overriding은 부모 class의 method를 자식 class에서 새로 정의하여 덮어 씌우는 것이다.
method를 정의 하기 전에 @Override를 붙여 헷갈림을 방지한다.

access modifier(접근제어자)

member 변수/method/class에 사용된다.
외부의 접근을 제한하는 역할을 한다.
private: 같은 class 내에서만 접근이 가능하다.
noting: 같은 package 내에서만 접근이 가능하다. default 값이다.
protected: 같은 package 내, 다른 package의 자손 class에서 접근이 가능하다.
상속받은 부모 class를 가리키는 키워드는 super이다.
public: 접근의 제한이 없다.

abstract class/method (추상 class/method)

class의 경우 자체적으로 instance를 생성하는것이 불가능하다.

method는 설계만 되어있고, 구현체가 존재하지 않는다.
return type이나 parameter등을 선언은 하지만, {}안의 값을 비워놓는다.
자식 class의 안에서 모두 구현해야한다.

문법들이 어느정도 신기한 것들이 많은 것 같다.
예를들면 python에서는 함수와 method가 나뉘어 있는데,
java에서는 함수 자체가 없이 method만이 존재한다.
또, python은 들여쓰기의 여부에 따라 완전히 다른 의미가 되는것이 java는 아닌 것도 다른 점이다.
python이랑은 많이 달라서 어색한 부분도 있기는 하지만, 아예 적응이 안되거나 하는 수준은 아니므로 어느정도 할만 한 것 같다.

0개의 댓글