23.11.22 - java (day03)

임연진·2023년 11월 23일

!!!문법 중요!!!

< 변수 만드는 법 >
클래스이름 변수이름;
숫자 저장하는클래스 Integer
글자 저장하는클래스 String

< 클래스 만드는 법 >
class 클래스이름(

)

< 조건문 >
if(조건) {
조건이 참일 때 실행할 코드
}

< 조건문2 >
if조건 (
조건이 참일 때 실행할 코드1
) else (
조건이 거짓일때
)

-> 만약에 조건이 참이면 코드1실행,

< 반복문1 >
while(조건)(
반복할코드
조건을 변경할 코드
)

< 반복문2 >
for(Integer i=0; i<10; i = i + 1){
반복할 코드
}

< 반복문3 >
break가 실행되면 즉시 반복문 종료

continue가 실행되면 바로 다음차례 반복문 실행

< 배열 만드는 법>
클래스이름[] 변수이름 = new 클래스이름[크기];

배열의 값 사용
	변수이름[순서번호];	//순서번호는 0번부터

< 출력 >
System.out.println("출력하고싶은것");

// 랜덤
0부터 99까지 숫자 중 하나를 랜덤하게 생성해서 num에 저장하는 코드.
Integer num = (int)(Math.random()*100);

1부터 100 사이의 랜덤 숫자를 생성해서 저장하는 코드.
Integer random = (int)(Math.random() * 100) + 1;

// 입력받기 위한 스캐너 만들기
Scanner sc = new Scanner(System.in);

< 메소드 만드는 법 >

class 클래스이름{

반환클래스이름 메소드이름 (매개변수클래스이름 매개변수이름) {
변수 = 변수 + 변수?
return 반환값;
}

  • 반환클래스이름 -> return이랑 맞춰서 String인지 Integer인지 써야함
  • return 해줄게 없으면(반환값이 필요없을때) 반환클래스이름에 void라고 쓰면 됨
    -> void goHome() {
    System.out.println("집에감");
    }

  • 매개변수 타입과 return반환값은 상황에 따라 필수 요소가 아님

  • this = 자기자신, 앞으로 생성될 객체의 자기자신?

// Alt + Insert 누르면 개발도구를 통해 자동으로 여러 메소드 생성 가능

  • 메소드 오버로딩
    -> 똑같은 이름의 메소드를 여러 개 만드는 것. 단, 매개변수 수나 매개변수의 타입이 달라야한다.
    -> 메소드를 사용하는 쪽에게 여러 사용 방법을 제공해주는 것
    -> 하나의 클래스에서 같은 메소드를 만드는 것.
  • 오버라이딩
    -> 부모가 상속해준 메소드를 내가 바꿔서 사용
    -> 무조건 오버라이딩하는게 아니라 부모가 상속해준 메소드를 바꾸고 싶을때 사용
    -> 두개의 클래스에서 같은 메소드를 만드는 것.=선언부가 같아야함.
    -> Ctrl + o 누르면 오버라이딩할 수 있는 메소드가 표시됨(어떤 메소드 오버라이딩해서 쓸지)

컴파일 언어(C, C++, C#,
소스코드를 컴파일해서 실행할 수 있는 프로그램으로 만들고 실행

인터프리터 언어(자바스크립트)
소스코드를 인터프리터를 통해서 바로 실행. -> 빠름


package day03;

public class Variables {
// 객체 = 인스턴스 변수
// 클래스 안에 만들어지고, 객체가 생성될 때 생성
// 객체가 저장된 변수가 없을 때 삭제 <- GC(가비지컬렉터=로봇청소기랑 비솟하다고 생각!)가 삭제
int num;

void method(){
    // 지역 변수
    // 메소드 안에서 만들어지고, 메소드가 실행될 때 생성
    // 메소드가 끝날 때 변수도 같이 삭제
    int num; // 위에 num이랑 다른변수임(클래스가달라서)
    System.out.println();
}

}


상속 : 두 클래스를 부모와 자식 사이로 만들어서 부모클래스가 자식클래스에게 물려주는 것

Child extends Parents

Object : 모든 클래스의 최고조상. 단군할아버지..!


응집도
기능 순차 통신 절차 시간 논리 우연
높은게 좋은거
하나의 클래스에는 해당 클래스에 관련된 것만

결합도
자료 스탬프 제어 외부 공통 내부
낮은게 좋은거
객체와 객체의 관계(부모, 자식, 메소드 호출)
-> 객체와객체의 관계는 없게하고 메소드로 하는게 좋음


포켓몬
피카츄
라이츄
파이리
꼬부기
버터풀
야도란
피죤투
또가스

포켓몬 클래스
x좌표
y좌표
이름
공격력
타입
레벨
체력
경험치

레벨업한다.
경험치를 얻는다.
공격한다.
공격받는다.

공중포켓몬 -> 1변수 2메소드
z좌표
난다.
착륙한다.

Integer z;

int fly(){
    if(z < 10){
        z = z + 10;
    }
    return z;
}

int landing(){
    if(z > 10){
        z = z - 10;
    }
    return z;
}
  • Alt + insert -> 생성자 자동으로 만들어줌

Pocketmon pikachu = new Pocketmon(
"피카츄",
55,
80,
1,
20,
0,
0,
"zero"
);

  • 생성자 = 초기화해주는 메소드

// 내가 하나하나 다 확인하기 너무 귀찮음
System.out.println(turtle.name + " " + turtle.hp);

    System.out.println(turtle.toString());

  • super. -> 부모객체를 의미
    this - > 나 자신

0개의 댓글