OOP

OOP

추상클래스와 인터페이스 (2021.01.03)

목차 추상클래스, 인터페이스 너무도 헷갈리는 개념 둘이다. 사실 별로 크게 차이가 나지도 않긴 하지만. 일단 추상클래스가 무엇인지 알아보자. 추상클래스란 구현부가 없는 메서드가 하나 이상 있는 클래스를 추상 클래스라 한다. public class Keyboard{ private int keypressure; public abstract void Keydown(); public void turnOn(){ System.out.println(“turn On keyboard”); } } 이렇게 Keydown()메서드의 구현부가 없는 것. 이것이 추상클래스이다. 그럼 인터페이스는 무엇일까. 인터페이스는 너무 많은 의미로 쓰인다. 여기서는 객체지향 프로그래밍에서 사용하는 새로운 의미의 인터페이스 이다. 인터페이스는..

OOP

생성자 (2020.11.12)

목차 생성자 객체를 인스턴스화 할 때, 초기 상태를 지정해 주기 위해서 생성자 개념을 사용한다. 각 언어마다 생성자를 지정하는 방법이 다양한데, VisualBasic 에서는 New 키워드로, Swift는 init 키워드로, Java와 C#같은 경우에는 클래스의 이름과 동일한 메서드로 생성자를 지정한다. 우리는 계속 사용해오던 Java를 사용하여 알아보록 하자. 상속 Slime 클래스의 생성자를 만들어보자. public class slime{ private int hp; private int ATK; private int DEF; public slime(){ // 반환값이 없다! this.hp = 500; this.ATK = 30; this.DEF = 10; } public void tackle() /* ..

OOP

오버로딩, 오버라이딩 (2020.10.23)

목차 이름이 비슷비슷해서 공부할 때는 항상 헷갈렸던, 오버로딩과 오버라이딩을 설명해보겠다. 오버로딩(overloading) 오버로딩은 매개변수의 형식, 개수를 다르게 해서 메서드가 다양한 유형의 요청에 답할 수 있게 하는 것이다. 예를 들어서, 덧셈을 위한 메서드를 만들었다. public int sum(int A, int B); 이 메서드는 두 정수를 받아서 두 수의 합을 반환하게 되어있다. 그런데 사용자가 3개의 정수의 합을 구하고 싶다고 한다면 어떻게할까? 이런 경우, 아래와 같이 메서드를 새로 하나 더 만들면 된다. public int sum3(int A, int B, int C); 하지만, 사용자가 다시 실수의 합을 구하는 메서드를 요청한다면? 또 double형식의 함수를 하나 더 만들고, pub..

OOP

상속 (2020.10.17)

목차 상속 상속은 어떤 한 클래스의 속성과 메서드를 다른 클래스에서도 쓸 수 있게 하는 것이다. 예를 들어, 어떤 게임의 몬스터를 전부 만들게 되었다고 해보자. 모든 몬스터 전부 public class slime{ private int hp; private int ATK; private int DEF; public void tackle() /* 등등 */ } public class wolf{ private int hp; private int ATK; private int DEF; public void bite() /* 등등 */ } 만들고 보니 hp, ATK, DEF 등 슬라임과 늑대는 서로 공통적으로 가지는 속성들이 많다. 다른 몬스터들을 생각해봐도, 이 속성들은 가지고 있어야 몬스터라 부를 수 있다...

시유후
'OOP' 카테고리의 글 목록