목록Java 입문 (10)
백엔드 개발 공부 일지
● 추상 클래스 추상클래스? 내가 지금까지 구현한 모든 클래스는 concrete 클래스이다. 추상클래스란, 하나 이상의 추상 메소드를 포함한 클래스를 추상 클래스(abstract class)라고 합니다. 단 하나 이상의 추상 메서드만 포함하면 되며 생성자, 일반 메서드도 포함 가능합니다. 추상클래스와 인터페이스의 다른 점은 인터페이스는 추상메서드"만" 포함하나, 추상 클래스는 하나의 추상 메서드만 포함하면 추상클래스가 됩니다. 이 때 추상 메서드란, 함수 선언만 되어있고 구현부가 없는 메서드를 추상 메서드라고 합니다. 추상 클래스는 "다형성"을 보장하기 위해 나타난 개념인데요. "자식 클래스에서 반드시 재정의가 되어야 된다"는 점에서 다형성이 보장됩니다. 부모 클래스에서 추상 메서드를 선언하면, 자식 클..
● 상속이란? 상속은 객체 지향 프로그램에 이써 유지보수성과 연관이 깊은 개념이다. B클래스를 생성할때의 기존에 있던 A클래스의 멤버변수나 메서드를 사용해야 할 경우 새로 클래스를 생성하지 않고 A클래스를 상속받음으로써 멤버변수와 메서드를 공유하여 사용할 수 있다. 이경우, A클래스는 상위클래스, B클래스는 하위클래스에 해당한다. Class B extends A { } 아래의 예시는 Customer라는 상위클래스를 VIPCustomer라는 하위클래스가 상속을 받는 예제이다. (VIP 고객은 일반 고객과 다르게 상담원 ID와 할인률이 적용되는 경우) 보통 상위클래스에서의 멤버변수는 하위클래스만 사용할 수 있도록 protected로 선언한다. public일시 하위클래스외의 클래스가 사용이 가능하며 priva..
● 배열이란? 자료가 연속으로 나열된 구조 배열을 사용하면 자료형이 같은 자료 여러개를 한 번에 관리가 가능하다. Python에서도 list, tuple, dict, ndarray등 여러가지 자료형에서 배운 내용과 동일하나 자료형이 같아야 하는것이 JAVA 배열의 특징인듯 하다. 자료형[ ] 배열 이름 = new 자료형[개수]; or 자료형 배열 이름[ ] = new 자료형[개수]; 자바에서 배열은 선언하는 동시에 각 요소의 값이 초기화 된다. (정수 : 0, 실수 : 0.0, 객체 : null) 값을 넣고 초기화 하고 싶은 경우 다음과 같이 작성하면 된다. (값을 넣어 초기화시 자료형 개수 넣으면 error 발생) int [ ] studentIDs = new int[ ] {101, 102,103}; o..
● This 예약어 this가 뭔데? 1) 자신의 메모리를 가리키는 this this는 간단히 설명해, 생성된 인스턴스 스스로를 가리키는 예약어이다. 아래의 코드를 통해, BirthDay class를 만들고 this와 BirthDayclass를 출력해본다. package thisex; class BirthDay{ int day; int month; int year; // 태어난 연도를 지정하는 메서드 public void setYear(int year) { this.year = year; // bDay.year = year; 와 같다 } // this 출력 메서드 public void printThis() { System.out.println(this); } } public class ThisExampl..
● 접근 제어자 자바에서 사용하는 접근 제어자는 다음과 같이 있다. public : 외부 클래스 어디에서나 접근할 수 있다 protected : 같은 패키지 내부와 상속관계의 클래스에서만 접근할 수 있고 그 외 클래에서는 접근할 수 없다. private : 같은 클래스 내부에만 접근할 수 있다. 미작성 : 같은 클래스 내부에서만 접근 할 수 있다. 아래의 코드는 studentName을 private으로 생성한 경우, studentName은 다른 클래스에서는 사용이 불가능하다. 사용이 필요할 경우 아래와 같이 get, set 메서드를 public으로 생성하여 다른 클래스에 활용이 가능하다. package classpart; public class Student { int studentID; private ..