목차 글 쓸 때마다 찾기는 싫어서 마크다운 문법은 많은데, 많이 쓰지는 않고, 그렇다고 일일이 찾아보기는 귀찮아서... 첫째, 제목(h 태그) h1, h2... 의 태그를 적용시켜준다. h1 h2 h3 h4 h5 h6 # h1 ## h2 ### h3 #### h4 ##### h5 ###### h6 둘째, BlockQuote 공식문서는 이렇던데, 그냥 부연설명느낌이다. 이런거다 이렇게 쑤면된다. > 이런거다 셋째, 목록 첫째 둘째 셋째 1. 첫째 2. 둘째 3. 셋째 쉽다 쉬워 만약 순서가 없는 목록이라면 기호 (*, -, +)를 사용한다. 첫째 둘째 셋째 첫째 둘째 셋째 첫째 둘째 셋째 * 첫째 * 둘째 * 셋째 + 첫째 + 둘째 + 셋째 - 첫째 - 둘째 - 셋째 첫째 둘째 셋째 * 첫째 - 둘째 + ..
목차 추상클래스, 인터페이스 너무도 헷갈리는 개념 둘이다. 사실 별로 크게 차이가 나지도 않긴 하지만. 일단 추상클래스가 무엇인지 알아보자. 추상클래스란 구현부가 없는 메서드가 하나 이상 있는 클래스를 추상 클래스라 한다. public class Keyboard{ private int keypressure; public abstract void Keydown(); public void turnOn(){ System.out.println(“turn On keyboard”); } } 이렇게 Keydown()메서드의 구현부가 없는 것. 이것이 추상클래스이다. 그럼 인터페이스는 무엇일까. 인터페이스는 너무 많은 의미로 쓰인다. 여기서는 객체지향 프로그래밍에서 사용하는 새로운 의미의 인터페이스 이다. 인터페이스는..
목차 생성자 객체를 인스턴스화 할 때, 초기 상태를 지정해 주기 위해서 생성자 개념을 사용한다. 각 언어마다 생성자를 지정하는 방법이 다양한데, 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() /* ..
목차 이름이 비슷비슷해서 공부할 때는 항상 헷갈렸던, 오버로딩과 오버라이딩을 설명해보겠다. 오버로딩(overloading) 오버로딩은 매개변수의 형식, 개수를 다르게 해서 메서드가 다양한 유형의 요청에 답할 수 있게 하는 것이다. 예를 들어서, 덧셈을 위한 메서드를 만들었다. public int sum(int A, int B); 이 메서드는 두 정수를 받아서 두 수의 합을 반환하게 되어있다. 그런데 사용자가 3개의 정수의 합을 구하고 싶다고 한다면 어떻게할까? 이런 경우, 아래와 같이 메서드를 새로 하나 더 만들면 된다. public int sum3(int A, int B, int C); 하지만, 사용자가 다시 실수의 합을 구하는 메서드를 요청한다면? 또 double형식의 함수를 하나 더 만들고, pub..