다형성 polymorphism 다형성은 객체지향에서 중요한 개념으로, 하나의 객체나 메소드가 여러 형태를 가질 수 있는 것을 뜻한다. 인터페이스 정리에서 사용했던 GamingConsole 예시로 알아보는 다형성 public interface GamingConsole { // GamingConsole 인터페이스 선언 public void up(); public void down(); public void right(); public void left(); } 우선 이렇게 GamingConsole 인터페이스를 선언해준다. up, dow, right, left라는 메소드가 정의만 되어있을 뿐 구현은 되어있지 않다. 이제 이 메소드들을 구현하는 클래스인 MarioGame과 ChessGame을 각각 만들어준다. ..
추상클래스 활용 '나는 적용법을 제공하고 싶지 않고 대신 알고리즘을 제공하겠다' 하는 경우 '이건 하위 클래스들이 해결해야 하는 문제다' 하는 경우 특징 추상클래스는 다른 추상클래스를 상속할 수 있다 abstract class B extends A 추상클래스는 정의된 변수들을 가질 수 있고 정의된 메소드도 가질 수 있다. 인터페이스 추상클래스와 인터페이스는 아주 다른 개념이다. 인터페이스는 선언을 제공할 뿐 정의를 내리는 게 아니다. 인터페이스에 대해 사고하는 방법 게이밍 콘솔이라고 생각한다. 어떤 게임을 하든지 버튼은 그 게임에서 정의된 역할을 한다. public interface GamingConsole { // GamingConsole 인터페이스 선언 public void up(); public v..
상속 Inheritance SuperClass = 상위 클래스 = 부모 클래스 SubClass = 하위 클래스 = 자식 클래스 다른 클래스에서 이미 사용중인 코드를 재사용할 때 굉장히 유용하다. 단, B(하위) Is a A(상위) 관계일때만 사용하는 걸 추천한다. sub클래스에서 super 클래스의 값들에 접근하려면 super를 쓰면 된다. 예를 들어 super.getEmail() 모든 클래스 = Object클래스의 하위 클래스 아무것도 상속받지 않는 클래스도 사실 객체를 상속받고 있다. Person person = new Person( ); 이렇게 클래스 인스턴스를 생성해보자. 그다음 행에 Person을 입력한 후 .을 입력하자마자 Person 클래스에 없는 메소드(notify, hashCode, to..
생성자constructor 지금까지 사용해왔던 setSpeed 메서드 없이도 특정 값을 전달하는 MotorBike 객체를 생성하고 싶을 때 생성자를 활용하면 된다. public class MotorBike { private int speed; MotorBike(int speed) { //생성자 this.speed = speed; } public int getSpeed() { //getter메서드 return speed; } public void setSpeed(int speed) { //setter메서드 System.out.println(speed); System.out.println(this.speed); this.speed = speed; } } public class MotorBikeRunner {..
객체 지향적으로 생각한다는 것 객체 지향적으로 생각한다는 것은 현재 가진 문제에 연관된 여러 요소를 확인하려 노력하는 것이다. 즉, 처음 생각할 것은 관련된 객체가 무엇이 있는지. 그리고 객체에 관련된 요소들을 확인한 다음에 내가 사용하고자 하는 것이 무엇인지 확인한다. 예시1) 비행 비행기 항공사, 제조사, 타입, 포지션 등 ← 데이터 이륙하다, 착륙하다 등 ← 행동 승무원 이름, 주소, 소속 등 ← 데이터 탑승수속하다, 안내하다 등 ← 행동 탑승객 이름, 주소, 국적 등 ← 데이터 체크인하다, 걷다, 구매하다 등 ← 행동 예시2) 온라인 쇼핑 시스템 클래스 고객 이름, 주소 등 로그인, 로그아웃, 물품선택, 계산 등 장바구니 상품 등 상품추가, 상품삭제 등 상품 이름, 가격, 재고 등 주문, 금액 변..
정보처리기사 공부하면서 정리한 내용입니다. 메서드 ReturnType nameOfTHeMethod() { //메서드 선언 //메서드의 역할 } 반환타입 ReturnType 반환하고 싶은 타입이 없으면 void, 정수형이면 int 등. void sum(int a, int b); int sum = sum(1, 10); //ERROR 위와 같은 경우 sum은 반환타입이 void라 반환값이 없기에 에러가 뜬다. 메서드에서는 값을 단 하나만 반환할 수 있음에 주의하자. 메서드 콜 nameOfTHeMethod(); System.out.println("Call"); 콘솔에 무언가를 출력하는 메서드 System.out.println() System.out.println()를 입력하여 메서드를 실행하는 것 = 메서드 콜..
윈도우환경에서 ATOM을 쓰며 생긴 이슈들을 이 포스트에 지속적으로 업로드할 예정이다. ⚙️초기 설정 1. 자동 줄바꿈 setting -> editor -> soft wrap 체크 아래쪽에 있다. 2. 유용한 플러그인 인스톨 emmet : 필수툴. 자동완성 기능이 좋았다 atom-beautify : 코드를 예쁘게 정리해준다. 사용법 : 단축키 ctrl+alt+b autoclose-html : HTML태그를 자동으로 닫아준다 minimap : 내비게이터 open-in-browser : 브라우저에서 파일을 바로 열도록 해준다. 사실 이게 기본으로 장착되어 있지 않아서 당황했다.. pigments : 색을 직관적으로 표시해준다 color-picker : 컬러피커가 생겨서 색상 넣을 때 편하다 🔧 문제해결 1...
💡 윈도우환경에서 VSCode를 사용하며 생긴 이슈들을 이 포스트에 지속적으로 업로드할 예정 첫 화면에서 튜토리얼(Get start with VS Code)을 안내하는데, 이 튜토리얼을 따라해보길 추천한다. Visual Studio Code Tips and Tricks 에서 모든 기능들을 안내하고 있다. JavaScript in VSCode 소개 페이지처럼 TOPIC를 눌러보면 각 언어별로 VSCode에서 제공하는 편의 기능(IntelliSense 등)을 볼 수 있다. Commit & Push 왼쪽 버튼에서 간단하게 커밋과 푸시가 가능하다. 스테이지에 올라간 항목도 가시적으로 확인 가능하기에 편리하다. ⚙️Tips and Tricks 복수의 폴더 열어놓고 작업하기 EXPLORER탭에서 우클릭 → Add ..