Java 강의정리(4월18일)

13176 단어 JavaJava

TIP

자동으로 코드정리하기

settings에 들어가서 save action 검색후 Reformat code 체크한다

객체 지향 프로그래밍

객체 vs 클래스

객체 (object) : 현실 세계에 존재하는 모든 것
클래스 (class) : 컴퓨터 세계에서 객체를 구체화 한 틀

객체의 모습

위 사진을 보고 클래스를 만들때 클래스이름은 축구선수로 해야한다
메시로 하면 안된다

인스턴스와 클래스

용어 정리

오브젝트 (object) : 현실 세계의 모든 객체
클래스 (class) : 오브젝트를 가상세계 용으로 구체화 한 것 (붕어빵 틀)
인스턴스 (instance) : 클래스를 활용 해 메모리 상에 만들어 낸 것 (붕어빵)

클래스 예시

Hero 클래스

package com.jinho.day6.game;

public class Hero {
    String name;
    int hp;
    

    void sit(int sec) {
        this.hp += sec;
        System.out.println(this.name + " 는" + sec + "초 앉았다");
        System.out.println("HP가 " + sec + "만큼 회복되었다");
    }


    void sleep() {
        this.hp = 100; //this 는 class Hero 자기 자신을 가르킬때 사용한다
        System.out.println(this.name + "은 잠을 자고 회복했다");
    }


}

kinoko 클래스


package com.jinho.day6.game;

public class Kinoko {

    //field,전역변수,global variable,property,맴버 변수
    final int LEVEL = 10;
    int hp; // 맴버변수 hp 라는 것을 나타내기 위해 mHp 라고 쓰기도 한다
    char suffix;

    //method, function  -->동사로 시작한다 그리고 첫 단어 시작 소문자 , 두번째 단어 시작 대문자
    void attack() {

    }

    void run() {
        System.out.println("버섯" + this.suffix + "는 도망갔다");
    }


}

클래스의 모습을 보면 속성과 기능으로 구현되어 있는모습을 볼수있다
실제 사용하려면 main 쪽에서 new 클래스이름 으로 생성을 해주어야한다
(이는 마치 c언어에서 malloc과 유사하다)

package com.jinho.day6.game;


//게임 시스템을 총괄하는 객체
public class GameMain {
    public static void main(String[] args) {
        /*
        용사여, 가상 세계에 탄생하라
        괴물 버섯이여, 가상 세계에 탄생하라
        용사여, 싸워라
        괴물 버섯이여, 도망가라
         */

        //용사 탄생
        Hero hero = new Hero();  //(c언어 에서 malloc 와 유사하다)

        //용사 속성 부여
        hero.name = "진호";
        hero.hp = 100;

        //생성 문구 프린트
        System.out.println("용사 " + hero.name + "을 생성했다");

        //버섯 탄생
        Kinoko kinoko = new Kinoko(); // (c언어 에서 malloc 와 유사하다)

        //버섯 속성 부여
        kinoko.suffix = 'A';
        kinoko.hp = 50;

        //생성 문구 프린트
        System.out.println("버섯" + kinoko.suffix + "을 생성했다");

        //버섯 탄생
        Kinoko kinokoB = new Kinoko(); // (c언어 에서 malloc 와 유사하다)

        //버섯 속성 부여
        kinokoB.suffix = 'B';
        kinokoB.hp = 50;

        //생성 문구 프린트
        System.out.println("버섯" + kinoko.suffix + "을 생성했다");


        //용사 3초 앉기
        hero.sit(3);
        System.out.println("용사의 HP: " + hero.hp);

    }
}

총정리

인스턴스와 클래스

  • 인스턴스와 클래스는 완전히 다른 것이다. 혼동 하지 말자
  • 가상 세계에서 활동하는 것은 인스턴스 (오브젝트)
  • 인스턴스를 생성하기 위한 틀이 클래스

필드와 메소드

  • 클래스에는 속성을 필드로, 동작을 메소드로 선언한다
  • final 이 붙은 필드는 상수 필드로서 값이 불변이다
  • this 는 자기 자신의 인스턴스를 표시하는 키워드

클래스 타입

  • 클래스를 정의하면, 그 클래스 타입의 변수를 선언 할 수 있다
  • 어떤 클래스 타입 변수는 그 클래스의 인스턴스를 담을 수 있다

인스턴스화

  • new 연산자를 사용하여 클래스로부터 인스턴스를 생성
  • 어떤 클래스 타입 변수에 인스턴스가 담겨 있을 때 “변수명.필드명" 이나 “변수명.메소드명()” 으로
    그 인스턴스의 필드나 메소드를 이용할 수 있다

좋은 웹페이지 즐겨찾기