TIL

230126 [Java] (클래스)

하차모 2023. 1. 26. 23:24

1. 클래스

  절차지향 프로그래밍 : 순차적으로 처리하는 프로그래밍 기법, 순서가 엄격하게 정해져 있음

  객체지향 프로그래밍 : 다수의 객체를 만들고 서로 상호작용을 통해 원하는 결과를 도출하는 프로그래밍 기법

  ** 자바는 객체지향언어임

  1-1. 객체

    실세계에 존재하거나 생각할 수 있는 것.

    프로그래머 관점에서의 객체 : 데이터와 기능을 변수와 메소드로 구현한 것

  1-2. 클래스

    데이터(변수)와 기능(메소드)을 공유하는 유사한 성질의 객체들을 그룹화한 것. (설계도)

    사용자 정의 자료형임.

    클래스를 구성하는 요소 - 멤버변수(필드), 메소드의 선언, 생성자

    +) 변수의 종류

        멤버변수 : 클래스 안에서 선언된 변수

        지역변수 : 메소드 안에서 선언된 변수, 초기화 필수

        매개변수

public class Car {
    //멤버변수, 필드
    //제조사, 가격
    String brand;
    int price;

    //메소드
    //시동 거는 기능, 움직이는 기능
    public void powerOn() {
        System.out.println("시동을 켭니다.");
    }
    public void moveCar() {
        System.out.println("차가 움직입니다.");
    }
	
    //매개변수로 받은 값을 brand에 저장하는 메소드
    public void setBrand(String brand1) {
    name = name1;
    }
    //매개변수로 받은 값을 price에 저장하는 메소드
    public void setPrice(int price1) {
    price = price1;
    }
    //자동차의 정보를 출력하는 메소드
    public void printCarInfo() {
    	System.out.println("제조사 : " + brand);
        System.out.println("가격 : " + price);
}

  new 연산자 : 새로운 객체를 생성할 때 사용

public class CarTest {
    public static void main(String[] args) {
        //Car 클래스의 객체 선언
        //문법 : class명 객체명;
        Car car1;

        //선언한 객체 생성
        //문법 : 객체명 = new class명();
        car1 = new Car();

        //객체의 선언 및 생성을 동시에
        Car car2 = new Car();
        //---------------------------------
        
        //객체가 가진 변수 혹은 메소드 접근
        //문법 : 객체명.변수명     객체명.메소드명
        //시동을 켜는 메소드
        car1.powerOn();
        
        //car1 차량의 제조사를 출력
        System.out.println(car1.brand);

        //car1의 금액을 1000원으로 변경하는 코드
        car1.price = 1000;
        //---------------------------------

	//car2의 제조사, 가격 변경
        car2.setBrand("현대");
        car2.setPrice(3000);
        
        //car2의 정보 출력
        car2.printCarInfo
    }
}

    멤버변수에 직접적으로 접근하는 것은 좋지 않다.

    멤버변수를 용도에 맞게 변화시키는 메소드를 생성하여 접근.

 

간단하게

  - 클래스 : 설계도, 붕어빵틀
  - 객체(인스턴스) : 부품, 붕어빵

 

 

**새롭게 알게 된 것

  문자열을 정수로 변환 : Integer.parseInt(String s);

  정수를 문자열로 변환 : String.valueOf(int i);    +)간단한 방법 : + "" (빈 문자열 나열)

//문자열 -> 정수
int aa = Integer.parseInt("10");

//정수 -> 문자열
String bb = String.valueOf(10);

 

  클래스, 메소드, 변수 등 이름 지을 때 많이 사용하는 단어 : set/get, even/odd, vertical/horizontal, min/max