[목차]
- 객체지향이전의 코딩
- 객체화
객체지향이전의 코딩
// 중복된 값은 메소드(함수)로 만들어서 사용해야 더욱 효율적으로 사용할 수 있습니다.
System.out.println(10 + 20);
System.out.println(20 + 40);
// main안에 있는 sum(10, 20)이 sum메서드 매개변수 안에 있는 left, right안에 들어갑니다.
public static void sum(int left, int right) {
// left right 10, 20이 더한 값 30이 출력
System.out.println(left + right);
}
public static void main(String[] args) {
// 연관되어 있는 값이 묶여 있어서 보기 편해집니다. (가독성이 높아짐)
sum(10, 20);
sum(20, 40);
}
객체화
- 많은 선배 프로그래머들에 의해서 만들어졌기 때문에 다양한 의도가 반영된 프로그래밍 패러다임이다.
객체 지향이 만들어진 동기를 하나의 케이스로 설명하는 것은 어려운 일
- 객체 지향의 핵심은 연관되어 있는 변수와 메소드를 하나의 그룹으로 묶어서 그룹핑하는 것 입니다.
class Calculator{
int left, right;
// main에서 받은 10과 20의 값을 left right에 넣은 후 this.left, this.right에 넣어줍니다.
public void setOprands(int left, int right){
// this: 클래스를 통해서 만들어진 인스턴스 자신을 가리킵니다.
this.left = left;
this.right = right;
}
public void sum(){
System.out.println(this.left+this.right);
}
public void avg(){
System.out.println((this.left+this.right)/2);
}
}
public class CalculatorDemo4 {
public static void main(String[] args) {
// Caluclater 데이터타입) c1 = new Calculater(); (생성자)
Calculator c1 = new Calculator();
// c1의 setOprands(10,20)을 넣어줍니다.
c1.setOprands(10, 20);
c1.sum();
c1.avg();
Calculator c2 = new Calculator();
c2.setOprands(20, 40);
c2.sum();
c2.avg();
}
}
클래스
- Calculater라고 정하고 이 것들을 Calculater이라는 이름으로 그룹핑하고 싶다라고 할 때 사용하는 키워드가 class 입니다. class키워드 뒤에는 클래스 이름이 오고 그 뒤에 중괄호는 클래스의 시작과 끝의 경계를 의미합니다.
class Calculator {
인스턴스
- 클래스는 일종의 설계도 입니다.
- 설계도를 구체적인 제품으로 만들어야 합니다. 그 때 사용하는 키워드가 new 입니다.
- new Calculater()은 클래스 Calculater를 구체적인 제품으로 만드는 명령입니다. 이렇게 만들어진 구체적인 제품을 인스턴스라고 부릅니다.
Calculater c1 = new Calculater();