Java 프로그래밍 : 객체지향 (1) 클래스, 객체, 메소드, 생성자, 변수 타입, static

준우·2022년 4월 14일
0

Java

목록 보기
1/30
post-thumbnail

자바의 특징

  1. 세계적으로 가장 많이 쓰이는 언어 중 하나!
  2. Windows, Android, MacOS, UNIX 등 다양한 환경에서 동작한다.
  3. 객체지향 언어이다.

    OOP

    Object-Oriented Programming, 조립식 프로그래밍.

자바의 장점

  1. 유지보수하기가 편하다.
  2. 객체를 재사용할 수 있다.
  3. 프로그램 확장이 편리하다.

클래스와 객체

클래스(Class)는 자바 프로그래밍의 최소 단위이며, 객체(Object)를 만들기 위한 설계도라고 할 수 있다. 또한 오브젝트를 인스턴스라고 부르기도 해서, 클래스를 통해 객체를 만들어내는 과정을 인스턴스화라고 한다.

  • 클래스 : 설계도
  • 오브젝트 : 부품
  • 프로그램 : 자전거
// Pizza 클래스 - 프로그램의 최소 단위
public class Pizza {
  // 메인 메소드 - 프로그램 실행의 시작점
  public static void main(String[] args) {
    // 실행될 코드들..
  }
}

메인 메소드 : 클래스 내부에 위치하며, 프로그램 실행의 시작점.

클래스

클래스는 필드(field)와 메소드(method)로 이루어져 있다. 따라서 클래스를 만드는 방법은 아래와 같다.

  1. 필드를 작성한다.
  2. 메소드를 정의한다.
  • field :객체가 가지게 될 상태
  • method: 객체가 할 동작

클래스 생성 예시

예를 들어 강아지 클래스를 만든다면 field 는 이름, 품종, 몸무게 등. 그리고 method는 짖기, 꼬리 흔들기 등이 있을 수 있다.

class Dog{

	//field
    String name;
    String breed;
    double weight;
    
    //method
    public static String bark(){
    System.out.println("멍멍!!");
    }
   
    
}

method 생성 예시

public static 반환타입 메소드이름 (입력 변수){
	변수 생성
	값 계산
	값 반환
}

생성자

클래스로부터 객체를 생성하는 특별한 메소드로, 객체 생성 및 초기화 역할을 담당한다. 생성자도 메소드이므로 호출과 정의로 나누어진다.

변수 타입

(1) 레퍼런스형

클래스 타입, 사용자 정의형 타입이라고도 불림. 객체를 변수에 연결하기 위한 타입으로, 객체를 간접적으로 가르키는 형태. 대문자로 시작한다. (ex. String hero, ...)

  • Dog jindo = new Dog("시고르자브종", 3);

(2) 기본형

반면, 레퍼런스형과 달리 기본형 변수는 객체가 아닌 값을 직접 가진다. 그리고 소문자로 시작한다. (ex. int, double, boolean, ...)

  • int age = 3;

Static

공유의 개념을 가진 키워드로, 필드와 메소드에 적용될 수있다. 필드에 적용되면 클래스 변수, 메소드에 적용되면 클래스 메소드라고 부른다. 클래스 변수는 객체 외부 클래스 영역에서 공유된다.

반면 None static field, 다시말해 static 이 없는 인스턴스 변수는 객체 내부에 존재한다.

class Student {
	//클래스(공유) 변수
    static int count = 0;
    //인스턴스(멤버) 변수
    int id;
    String name;
}

또한, 클래스 메소드(스태틱 메소드)는 클래스가 동작시키는 메소드이며 인스턴스 메소드는 간편한 기능 (ex. Math.random)을 구현할 때 사용하기에 유용하다.

🙏 참고 강의

0개의 댓글