본문 바로가기

JAVA39

8. 상속 자바는 클래스끼리의 상속이 가능하다. 상속이란, 부모 클래스의 속성과 매서드 값, 즉 모든 것을 자식 클래스에게 물려주는 것을 이야기 한다. 이 때, 우리가 알고 있는 상속과 자바의 상속은 다른데, 자바에서는 객체 지향 프로그램 속 상속의 의미를 가지려고 하면 다형성이 있어야 한다. 조금 더 쉽게 말하면, 부모 클래스로 올라갈수록 일반화가 된다. 예를 들어 1. 집은 기와집이나 초가집의 일반화이다. 따라서 집은 기와집이나 초가집의 부모 클래스가 된다. 이 때 기와집은 '기와집', 이라고 불리기도 하고 '집' 이라고도 불리기도 한다. 이렇게 이름에 대해서 다양한 명칭을 가지게 되는 것을 상속이라고 한다. 2. 아빠와 아들의 경우 일반적으로는 아빠 아시아인 -> 한국인 -> 박서준(자식)의 순서로 상속된다... 2020. 3. 30.
7. 오버로딩 ★크래프트라는 게임이 있다. 그 게임을 예시로 오버로딩의 예를 보도록 하자. 프로토스의 유닛을 보자. 질럿, 드라군, 다크템플러, 리버가 있다고 가정한다. (여러가지 기능이 있지만 이건 공부하는 용이니까) 크게 세가지의 변수를 지정해보자 이름, 체력, 공격력. 일단 질럿만 보자. 이름은 유닛이 인스턴스화 되면서 지정될 것이다. 가령, 1번 질럿이라던가 2번 질럿이라던가.. 그 질럿의 이름은 인스턴스가 사라지기 전까지 변하지 않는 값일 것이다. 그러면, 이 값은 상수일터이다. 체력은 모든 질럿이 처음에는 같게 태어나지만, 그 질럿이 얼마나 공격 당하고 치유받고 하는가에 따라서 체력은 유동적으로 바뀌게 된다. 따라서, 변수의 초기화는 서로 같게 하지만, 유동적으로 변하는 변수로 선언하자. 공격력은, 잘 생각.. 2020. 3. 27.
6. 생성자 생성자는 객체의 초기화를 위해 실행하는 메소드이다. 사람의 개인정보를 출력하는 클래스를 생성해보자. -Person.java public class Person { String name; String job; int age; char gender; String bloodType; } -PersonApp.java public class PersonApp { public static void main(String[] args) { Person p1=new Person(); //인스턴스화 p1.name="최승희"; p1.job="의사"; p1.gender='여'; p1.bloodType="AB"; p1.age=45; Person p2=new Person(); p2.name="이미녀"; p2.job="골프선수";.. 2020. 3. 27.
클래스, 객체, 인스턴스 객체란, 추상적이지 않은 모든 것을 의미한다. 추상적이지 않다는 말을 잘 생각해보자. 우리는 실질적으로 '동물' 이라는 것을 본적은 없다. 다만 '사자', 나 '호랑이', '강아지' 와 같은 생물을 보았을 뿐이다. 따라서 '동물' 이라는 단어는 추상적인 단어이고, '사자'나 '호랑이' 등이 훨씬 구체적인 단어이다. 이렇게 구체적인 것을 객체라고 한다. 객체는 클래스에 선언된 그대로 생성되어 존재한다. 클래스란 일종의 설계도와 같다. 같은 설계도가 있으면 같은 모양의 집을 지을 수 있는 것과 마찬가지이다. 다만 그 집을 이루는 재료는 조금씩 달라질 수 있을 것이다. 이렇게 하나의 틀과 같은 역할을 하는 것이 클래스이다. 그리고 그 클래스를 통해 나온 새로운 것이 있을 것이다. 프로그램으로 치면 클래스를 이.. 2020. 3. 27.
반응형