Programming/Java

[Java] 생성자 및 상속에서의 생성자
※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! C++, Java를 공부하며 생성자에 대해 깊게 고민한 적이 없었는데, 이번 포스팅을 계기로 심화된 학습을 해 보고자 한다. [ 1 ] 생성자란? 생성자는 인스턴스를 생성할 때 클래스 내부에서 가장 먼저 호출되는 특별한 메소드이다. 흔히 인스턴스를 생성할 때 new 연산자 바로 뒤에 오는 클래스 이름과 같은 메소드가 생성자이다. - class 객체변수 = new class(); 에서 class()가 생성자를 호출하는 것이다. 그렇다면 생성자는 어떻게 선언하는 것일까? 우선, 우리는 클래스를 선언할 때 명시적으로 생성자를 선언하지 않아도 해당 클래스를 문제 없이 사용할 수 있다. class A { int var1; int ..

[Java] 클래스(class)의 구성과 클래스 멤버 및 인스턴스 멤버
※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! [ 1 ] 클래스의 구성 클래스는 멤버(member)로 구성되는데, 멤버에는 필드(field), 메소드(method), 생성자(constructor)가 있다. 필드(field)라는 용어가 생소하여 더 공부해 보았는데, 필드는 결국 "클래스 전역에서 접근할 수 있는 변수"를 의미했다. - 필드의 역할 (1) 객체의 고유 데이터를 저장한다. (2) 객체가 가져야 할 부품을 저장한다. (3) 객체의 현재 상태를 저장한다. - 필드 특징 (1) 필드 선언을 위해서는 [접근 지정자] [필드의 타입] [필드의 이름] 3가지를 정해줘야 한다. (2) 생성자와 메소드 밖에서 선언되어야 한다. (생성자, 메소드 내에서 생성된 변수는 로컬..

[Java] 제네릭(Generic)
※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! [ 1 ] 기본 개념 제네릭(Generic): 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법이다. C++에 익숙한 사람이라면 template가 떠오를 것이다(단, 역할은 비슷하지만, 차이점도 많다!) class Student { public T info; } Student s1 = new Student(); Student s2 = new Student(); 위의 가 Generic이다. Student라는 class를 정의하는 시점에서는 info의 DataType을 명시적으로 지정하지 않고 있다가, s1이라는 Student의 인스턴스를 Student으로 만들어낼 때 info가 String이라는 DataType을..