Java 강의정리(4월18일)
TIP
자동으로 코드정리하기
자동으로 코드정리하기
settings에 들어가서 save action 검색후 Reformat code 체크한다
객체 지향 프로그래밍
객체 vs 클래스
객체 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 연산자를 사용하여 클래스로부터 인스턴스를 생성
- 어떤 클래스 타입 변수에 인스턴스가 담겨 있을 때 “변수명.필드명" 이나 “변수명.메소드명()” 으로
그 인스턴스의 필드나 메소드를 이용할 수 있다
Author And Source
이 문제에 관하여(Java 강의정리(4월18일)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@emb220117/Java-강의정리4월18일저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)