Java기초개념정리

공부한 내용을 정리합니다
Programming/Java

Java기초개념정리 (7)접근제어자, Static

접근 제어자 클래스에서 public, default 두 가지만 사용 가능하다. public을 지우면 default가 되며 같은 패키지 안에서만 접근이 가능해진다. 메소드에서 public, protected, default, private 네 종류 모두 사용 가능하다. 기본적으로는 private로 작업하게 된다. 접근 제어자 접근 범위 클래스 패키지 상속 전체 public 접근 제한 없음 ○ ○ ○ ○ protected 동일 패키지와 상속받은 클래스 ○ ○ ○ default 동일 패키지 ○ ○ private 클래스 ○ Static class Player { private String name; private int count; // 기본 초기값 0 public Player(String name) { thi..

Programming/Java

Java기초개념정리 (6)다형성

다형성 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을 각각 만들어준다. ..

Programming/Java

Java기초개념정리 (5)추상클래스, 인터페이스

추상클래스 활용 '나는 적용법을 제공하고 싶지 않고 대신 알고리즘을 제공하겠다' 하는 경우 '이건 하위 클래스들이 해결해야 하는 문제다' 하는 경우 특징 추상클래스는 다른 추상클래스를 상속할 수 있다 abstract class B extends A 추상클래스는 정의된 변수들을 가질 수 있고 정의된 메소드도 가질 수 있다. 인터페이스 추상클래스와 인터페이스는 아주 다른 개념이다. 인터페이스는 선언을 제공할 뿐 정의를 내리는 게 아니다. 인터페이스에 대해 사고하는 방법 게이밍 콘솔이라고 생각한다. 어떤 게임을 하든지 버튼은 그 게임에서 정의된 역할을 한다. public interface GamingConsole { // GamingConsole 인터페이스 선언 public void up(); public v..

Programming/Java

Java기초개념정리 (4)상속Inheritance

상속 Inheritance SuperClass = 상위 클래스 = 부모 클래스 SubClass = 하위 클래스 = 자식 클래스 다른 클래스에서 이미 사용중인 코드를 재사용할 때 굉장히 유용하다. 단, B(하위) Is a A(상위) 관계일때만 사용하는 걸 추천한다. sub클래스에서 super 클래스의 값들에 접근하려면 super를 쓰면 된다. 예를 들어 super.getEmail() 모든 클래스 = Object클래스의 하위 클래스 아무것도 상속받지 않는 클래스도 사실 객체를 상속받고 있다. Person person = new Person( ); 이렇게 클래스 인스턴스를 생성해보자. 그다음 행에 Person을 입력한 후 .을 입력하자마자 Person 클래스에 없는 메소드(notify, hashCode, to..

Programming/Java

Java기초개념정리 (3)생성자

생성자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 {..

Programming/Java

Java기초개념정리 (2)객체 지향 프로그래밍 OOP

객체 지향적으로 생각한다는 것 객체 지향적으로 생각한다는 것은 현재 가진 문제에 연관된 여러 요소를 확인하려 노력하는 것이다. 즉, 처음 생각할 것은 관련된 객체가 무엇이 있는지. 그리고 객체에 관련된 요소들을 확인한 다음에 내가 사용하고자 하는 것이 무엇인지 확인한다. 예시1) 비행 비행기 항공사, 제조사, 타입, 포지션 등 ← 데이터 이륙하다, 착륙하다 등 ← 행동 승무원 이름, 주소, 소속 등 ← 데이터 탑승수속하다, 안내하다 등 ← 행동 탑승객 이름, 주소, 국적 등 ← 데이터 체크인하다, 걷다, 구매하다 등 ← 행동 예시2) 온라인 쇼핑 시스템 클래스 고객 이름, 주소 등 로그인, 로그아웃, 물품선택, 계산 등 장바구니 상품 등 상품추가, 상품삭제 등 상품 이름, 가격, 재고 등 주문, 금액 변..

Programming/Java

Java기초개념정리 (1)메서드, 클래스, 패키지

정보처리기사 공부하면서 정리한 내용입니다. 메서드 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()를 입력하여 메서드를 실행하는 것 = 메서드 콜..