JAVA - 자바 기초 (day02)

모모는무지개·2024년 4월 4일

JAVA

목록 보기
2/9

클래스 구성요소

보통 클래스 내 코드(한 파일)는 평균 200줄

1. 필드

= 변수의 개념

[선언방법]

접근제어자 타입 변수명(=데이터); //변수를 선언하는 방법과 동일

[사용방법]

클래스명 객체명 = new 클래스명(); //객체 생성
객체명.필드명

2. 메소드

클래스 밖에서 쓰면 함수, 클래스 내에서 쓰면 메소드, 대부분 자바스크립트는 함수라고 명칭함. 암튼 자바같은 경우에는 항상 클래스 내에서 쓰기 때문에 메소드라고 칭함.


3. 생성자

3-1. 기본 생성자

  클래스명(){ ... }

3-2. 매개변수가 있는 생성자 (생성자 오버로딩)

클래스명(매개변수){ ... }

ex) 

class Person{
    String name;
    String phone;
    int age;

    Person(String phone){
        this.phone = phone;
    }
}

4. 상속

expands 를 사용해서 상속 가능

class Car {
    int wheels = 1;
    void ride(){
        System.out.println("와아아아앙");
    }

    void getWheelNum(){
        System.out.println("바퀴 수는 "+ wheels + "개 입니다.");
    }
}

//버스
class Bus extends Car {
    int wheels = 4;
    void ride(){
        System.out.println("부릉부릉");
    }

    void getWheelNum(){
        System.out.println("바퀴 수는 "+ wheels + "개 입니다.");
    }
}

오늘의 질문?

Q1. 오버로딩을 해야하는 이유?

동일한 기능을 하는 메서드를 하나의 이름으로 처리할 수 있다는 장점이 있음

Q2. 클래스와 객체의 차이

📖 클래스(Class)란?
Java에서 객체를 생성하기 위한 일종의 설계도이다.
흔히 붕어빵(객체)를 만들기 위한 붕어빵 틀(클래스)이라고 비유를 한다.
객체가 가지는 속성(필드)와 동작(메서드)으로 이루어져 있다.
이들은 생략될 수도 있고 하나 이상 작성될 수도 있다.
Java를 실행 시 클래스는 JVM 메모리의 클래스 영역(Class Area)에 로드된다.

Q3. 인스턴스와 객체

📖 객체(Object)란?
물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서
자신의 속성을 가지고 있고, 다른 것과 식별 가능한 것을 말한다.

📖 인스턴스(Instance)란?
클래스가 붕어빵 틀이라면, 그 틀을 통해 생성된 객체(붕어빵) 하나하나를 해당 클래스의 인스턴스라 한다.
클래스를 사용하여 힙 영역(Heap Area)에 새로운 인스턴스(객체)를 생성할 수 있다.
즉, 인스터스란 현실의 객체를 소프트웨어 내에서 구현한 실체라고 볼 수 있다.

Q4. 객체지향의 특징

  • 캡슐화 : 필드와 메서드를 하나로 묶는 것 (getter/setter)
  • 상속 : 자식클래스가 부모클래스의 특징과 기능을 물려받는 것 (오버라이딩과 관련)
  • 다형성 : 어떤 변수, 메소드가 상황에 따라 다른 결과를 내는 것 (오버로딩/오버라이딩과 관련)
profile
안녕하세요 하하하

0개의 댓글