분류 전체보기 176

패스트캠퍼스 객체 지향 핵심

객체 간의 상속은 어떤 의미일까? 클래스 상속 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속 받아서 속성이나 기능을 확장해 클래스를 구현한다. 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현할 때 기존 클래스를 상속한다. 상속하는 클래스: 상위 클래스, parent class, base class, super class 상속 받는 클래스: 하위 클래스, child class, derived class, subclass 상속 문법 class B extends A { } extends 키워드 뒤에는 단 하나의 클래스만 올 수 있다. 자바는 단일 상속 single inheritance 만을 지원한다. 상속을 구현하는 경우 상위 클래스는 하위 클래스보다 더 일반적인 개념과 기능을 가진다. ..

SET, GET 사용 이유와 예제

Getter와 Setter 메소드 사용 이유? 객체 지향 프로그래밍에서 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막기 때문에 외부에서 마음대로 읽고 변경할 경우 객체 무결성이 깨질 수 있기 때문에 메소드를 통해서 데이터를 변경하는 방법을 선호한다. private로 선언된 멤버 변수(필드)에 대해 접근, 수정할 수 있는 메소드를 public으로 제공한다. setter는 값 저장 유도하는 메소드 getter는 값을 return 받게 하는 메소드 // get, set 메소드 선언 public class Example { // 필드를 private로 선언해 외부로부터 보호하는 게 좋다. private int sum; // get 메소드 public int getSum() { return sum; ..

Java 2022.03.29

[예제] 객체 간 협력

출근 길 커피 사기 아침 출근 길에 A씨는 4000원을 내고 별 다방에서 아메리카노를 사마셨다. B씨는 콩 다방에서 4500원을 내고 라떼를 사 마셨다. 객체 지향 방법으로 구현해보자. // StarCoffee.java package cooperation; public class StarCoffee { // 1 public int price; public int income; // 2 public StarCoffee() {} // 3 public String sellStarCoffee(int price) { income += (price); if (price == 4000) { return "별 다방 아메리카노를 구입했습니다."; } else if (price == 4300) { return "별 다방 ..

Java 2022.03.23

StringBuffer

StringBuffer는 문자열을 추가하거나 변경할 때 사용하는 자료형이다. StringBuffer의 메소드들을 살펴보면서 StringBuffer의 사용법에 대해서 알아보자. append StringBuffer 객체를 생성하고 문자열을 생성하는 예제이다. StringBuffer sb = new StringBuffer(); sb.append("hello") sb.append(" "); sb.append("jump to java") String result = sb.toString(); System.out.println(result); // 결과 값 hello jump to java StringBuffer 자료형은 String 자료형보다 무거운 편에 속한다. new StringBuffer()로 객체를 생성하..

Java 2022.03.21

생성자 Constructor

무언가를 새로 생성하는 역할을 하는 것처럼 보이지만 실제로는 인스턴스가 생성될 때 가장 먼저 호출되는 함수다. // 기본적인 생성자 형태 public class ObjectExample(){ public ObjectExample(){ System.out.println("생성자 호출됨") } } 생성자를 작성하는 2가지 조건 생성자 이름은 클래스 이름과 같아야 한다. return 값이 없다. 생성자 특징 생성자도 오버로딩이 가능하기 때문에 하나의 클래스에 여러 개의 생성자가 존재할 수 있다. 연산자 new가 인스턴스를 생성하지, 생성자가 인스턴스를 생성하는 것이 아니기 때문에 혼동하면 안된다. 1. 기본 생성자 만약 클래스에 생성자가 따로 정의되어 있지 않다면, 컴파일러는 자동적으로 생성자를 추가한다. 컴..

Java 2022.03.19