어떠한 웹페이지의 게시판에는 한페이지마다 10개의 글이 올수 있고 각 글에는 게시글 제목, 내용, 작성자가 있으며 페이지마다 총페이지수와 총 게시글수 그리고 검색어를 띄워준다고 했을 때 다음과 같이 클래스를 구성할 수 있다. 먼저 Board(게시판) 클래스가 다음과 같이 구성되어 있다면 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 package HashMap; public class Board { private String title; private String contents; private String writer; public String getTitle() { return title..
1. Set 컬렉션 List 컬렉션은 객체의 저장 순서를 유지한다. (인덱스 존재) 하지만 Set 컬렉션은 저장 순서가 유지되지 않는다 (인덱스가 없음) Set 컬렉션은 수학의 집합과 비슷하며 순서와 상관이 없고 중복이 허용되지 않으며 다음과 같이 선언할 수 있다. 기본적으로 사용되는 HashSet에 대해서 알아본다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 package Set; import java.util.*; public class Set_exmaple { public static void main(String[] args) { Set set = new HashSet(); set.add("a"); s..
eqauls() 메소드의 매개타입은 Object이다. 이것은 모든 객체가 매개값으로 대입가능하다는 것이다. 왜냐면 모든 객체의 상위 타입이 Object이기 때문이다. 보통 서로 다른 객체의 비교연산자인 ==를 사용하면 객체의 메모리 주소값을 비교하게 된다. 또한 기본적으로 equals 메소드를 재정의 하지않았다면 Object에서 상속받은 기본 equals 메소드의 구현방식은 비교연산자인 == 과 동일하다. 그런데 만약 해당 클래스에서 equals 메소드를 오버라이딩 한 뒤, equals를 사용하면 객체의 메모리 주소를 비교하는 것이 아니라 객체가 가지고 있는 값을 비교할 수 있게 된다. 우리가 정말 자주 사용하는 String 객체가 대표적인 예시로서 String 객체에 eqauls 메소드를 사용하면 객체..
인터페이스는 .java형태의 소스파일로 작성되고 컴파일러(javac)를 통해 .class 형태로 컴파일되기 때문에 물리적 형태는 클래스와 동일하다. 그러나 선언 하는 방법은 다르다. -인터페이스 선언방법 public interface 인터페이스명 {} 클래스는 필드, 생성자, 메소드로 구성되어지는 반면에 인터페이스는 상수필드, 추상메소드으로만 구성되어진다. 상수는 public static final로 선언하기 때문에 public static final을 생략하더라도 컴파일과정에서 자동으로 붙게된다. [public static final 타입 상수명 = 값; -인터페이스 예제 예시로 리모컨이라는 인터페이스를 선언하고 그에 따른 TV, Audio 라는 구현 클래스를 작성해보도록 한다. 1. 인터페이스 및 추..
메모든 실체들이 가지고 있는 메소드의 실행 내용이 동일하면 추상클래스에 메소드를 작성하는 것이 좋다. 하지만 메소드의 선언만 통일하고 실행 내용은 실체 클래스마다 달라야 하는 경우가 있다. 예시로 모든 동물은 소리를 내기에 Animal이라는 추상 클래스에서 sound() 라는 메소드를 정의했다면 동물마다 다른 소리를 내야하므로 sound() 메소드를 추상 메소드로 선언한 뒤 실체 클래스에서 재정의(오버라이딩)을 해준다. 1. 추상 메소드 선언 : 메소드의 선언부만 있는 메소드로 자식 클래스에서 재정의(오버라이딩)되어 실행 내용을 결정해야한다 1 2 3 4 5 6 7 8 9 10 11 12 13 package chapter07_03; public abstract class Animal { public St..
객체를 직접 생성할 수 있는 클래스를 '실체 클래스'라 한다면 이 실체클래스들의 공통적인 특성을 추출해서 선언한 클래스를 '추상 클래스'라 한다. 추상클래스와 실체 클래스는 상속관계이며, 추상 클래스가 부모클래스가 된다. - 추상 클래스의 선언 추상클래스를 선언할 때는 클래스 선언에 abstract 키워드를 붙여야 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 package chapter07_03; public abstract class phone { // 필드 public String owner; // 생성자 public phone(String owner) { this.owner = owner; } // 메소드 public void t..