[JAVA] 인터페이스
·
JAVA
인터페이스(interface) : 자바에서 다중 상속이 되지 않는 이유는 메소드 출처의 모호성 등 여러 가지 문제가 발생할 수 있기 때문이다. 하지만 다중상속의 이점을 버릴 순 없어 자바에서는 인터페이스 라는 것을 통한 다중 상속을 지원하고 있다. 인터페이스란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미한다. 그러나 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있는 반면, 인터페이스는 오로지 추상 메소드와 상수만을 포함할 수 있다. 만약 모든 메소드를 추상 메소드로 구현하지 않는다면, abstract 키워드를 사용하여 추상 클래스로 선언해야 한다. 인터페이스 장점 대규모 프로젝트 개발 ..
[JAVA] 추상 클래스
·
JAVA
추상 메소드(abstract method) : 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미한다. 추상 메소드를 선언하여 사용하는 목적은 자식 클래스가 추상 메소드가 포함된 클래스를 상속받아 추상 메소드를 구현하도록 하기 위한 것이다. 중복되는 부분이나 공통적인 부분은 미리 다 만들어진 것을 사용하고, 이를 받아 사용하는 쪽(자식클래스)에서는 자신에게 필요한 부분만을 재정의하여 사용함으로써 생산성이 향상되고 배포 등이 쉬워지기 때문이다. 하위 클래스에 추상 메서드를 제공하여 각 하위 클래스마다 자신의 입맛에 맞게 재정의 하여 사용 할 수 있게 한다. 즉, 하위클래스에 아웃라인을 제공하는 것과도 같다. 추상 메소드는 선언부만이 존재하며, 구현부는 작성되어 있지 않다. 작성되어 있지 ..
[JAVA] 객체지향 - 상속을 이용한 포켓몬 키우기 게임
·
JAVA
포켓몬 키우기 게임을 만들어라 ① 각 캐릭터들의 동작과 상태 필요한 정보들을 만들어준다. package Game; //캐릭터들한테 상속 해주려고 만들었다. public class Poketmon { protected String name; protected int hp, exp, lv; public void eat() { System.out.println(name + "밥먹는다"); } public void sleep() { System.out.println(name + "잠잔다"); } public boolean play() { // 노는건 hp 감소하고 exp 는 증가 할꺼라 System.out.println(name + "논다"); return true; } public boolean exc() {..
[JAVA] 객체지향 - 회원가입 만들기
·
JAVA
입력값을 받아 회원 가입을 할 수 있게 하고 ID를 검색 할 수 있게 해라. ① VO 객체 클래스를 정의한다 package 회원가입; public class member5 { private String id; private String pwd; private String name; private String emai; // source -> Generate Constructor using Fields public member5(String id, String pwd, String name, String emai) { super(); this.id = id; this.pwd = pwd; this.name = name; this.emai = emai; } // source -> Generate Getters..
[JAVA] 객체지향 - 상속과 배열로 간단화
·
JAVA
앞선 포스팅의 방법이 결국 내용이 많아지면 구현 할 때 힘들어진다. https://henniee.tistory.com/55 [JAVA] 객체지향 - 클래스를 인자 값으로 받는 클래스 출력문 package TV; class Tv2 { String name = "Tv"; int price = 200; int point = 20; } class Audio2 { String name = "Audio"; int price = 200; int point = 20; } class Computer2 { String name = "Computer"; int price = 300; int point = 30; } class Buyer2 { int money henniee.tistory.com 따라서 현재 포스팅 처럼 cl..
[JAVA] 객체지향 - 클래스를 인자 값으로 받는 클래스 출력문
·
JAVA
package TV; class Tv2 { String name = "Tv"; int price = 200; int point = 20; } class Audio2 { String name = "Audio"; int price = 200; int point = 20; } class Computer2 { String name = "Computer"; int price = 300; int point = 30; } class Buyer2 { int money = 1000; int point = 0; public void buy(Audio2 a) { // buy 생성자 안에 클래스의 인스턴스를 파라미터로 받아 사용. // 즉 Audio2의 클래스를 인자로 받아 사용 if (money >= a.price) { /..
해니01_15
코딩구르르르