JAVA39 10. 추상 클래스/추상 매서드 앞서 매서드 오버라이딩을 할 때 추상 클래스에 대해 잠깐 이야기를 했었다. 추상 클래스는 객체를 추상화 하여 인스턴스화 하지 못하게 하는 장치이다. 따라서, 추상 클래스는 두가지 특징을 가진다. 1. 추상 클래스는 new 할 수 없음(물리적이지 못해 인스턴스화 하지 못하기 때문에) 2. 추상 클래스는 추상 매서드를 가질 수 있다. 또한 일반 매서드도 가질 수 있다. (단, 일반 클래스는 추상 매서드를 가지지 못한다) 다음의 매서드 오버라이딩 예시를 보자. abstract class Food1 { abstract void eat(); } class 라면1 extends Food1{ String name="라면1"; @Override void eat() { System.out.println(name+"을 먹.. 2020. 3. 31. 라이브러리(lombok) 설치하기 자바에는 기존 jar말고도 다양한 라이브러리가 있다. 그 중 lombok 라이브러리를 설치해보자. lombok은 getter, setter, 생성자를 자동으로 생성해주는 라이브러리다. 먼저, 다음 홈페이지를 들어간다. https://mvnrepository.com/repos Maven Repository: Repositories mvnrepository.com lombok을 검색해서, 다운로드 횟수가 제일 많은 것으로(ㅎ) 받는다. (이 글을 쓸때는 1.18.8을 다운로드 받았다.) 파일을 다운로드 받으면, 다운로드 파일로 들어갈텐데, 다운로드 파일에 git bash를 연다. git에서 다음과 같이 입력한다. (cmd 창에서도 가능한데, 이 때는 다운로드 파일의 경로를 직접 입력해주어야 한다.) 열리는 .. 2020. 3. 31. JAVA 실습 6. 매서드 오버라이딩을 이용한 오버로딩 줄이기 https://itstudy-mary.tistory.com/68 7. 오버로딩 ★크래프트라는 게임이 있다. 그 게임을 예시로 오버로딩의 예를 보도록 하자. 프로토스의 유닛을 보자. 질럿, 드라군, 다크템플러, 리버가 있다고 가정한다. (여러가지 기능이 있지만 이건 공부하는 용이니까) 크.. itstudy-mary.tistory.com 오버로딩을 하면서 ★의 유닛만들기를 했었다. 이 때 오버로딩의 한계를 정의했는데, 이 한계를 없애는 실습이다. 여기서 우리는 세 개의 변수를 보았었다. 공격력, 생명력, 이름. 이를 오버로딩 하기 위해 다음과 같은 코드를 입력했었다. static void attack(Dragoon u1, Zealot u2) { u2.hp = u2.hp - u1.attack; System.o.. 2020. 3. 30. 9. 매서드 오버라이딩 앞서 8번에서 배웠던 상속과 7번 오버로딩을 합하여 오버로딩의 한계를 해결할 수 있는 방법을 알아보도록 하자. 다음과 같은 코드가 있다. class Animal{ } class Dog extends Animal{ final String NAME="강아지"; } class Cat extends Animal{ final String NAME="고양이"; } class Bird extends Animal{ final String NAME="새"; } public class AnimalEx01 { static void attack(Dog u1, Cat u2) { System.out.println(u2.NAME+"가 "+u1.NAME+"에게 공격당했습니다."); } static void attack(Dog u1,.. 2020. 3. 30. 이전 1 2 3 4 5 6 7 8 ··· 10 다음 반응형