230317 풀스택 12일차 - 클래스, 생성자

황인성·2023년 3월 17일
0

개노잼 클래스 수업마치고 영상보면서 개념정리 해야겠다.

문제 - 플레이어가 어떤 공격을 할지는 플레이어의 직업에 따라 다릅니다.

// 문제 : 아래와 같이 출력 되도록 해주세요.
class Main {
	public static void main(String[] args) {
		캐릭터 a플레이어_캐릭터;
		a플레이어_캐릭터 = new 전사();
		a플레이어_캐릭터.공격();
		// 출력 : 전사가 대검으로 공격합니다.
		a플레이어_캐릭터 = new 마법사();
		a플레이어_캐릭터.공격();
		// 출력 : 마법사가 파이어볼로 공격합니다.
	}
}
abstract class 캐릭터 {
	abstract void 공격 ();
	}
class 전사 extends 캐릭터{
	void 공격 () {
		System.out.println("전사가 대검으로 공격합니다.");
	}
}
class 마법사 extends 캐릭터{
	void 공격 () {
		System.out.println("마법사가 파이어볼로 공격합니다.");
	}
}

문제 - 생성자를 사용해서 전사의 기본 이름을 No Name 으로 해주세요.

// 문제 : 아래와 같이 출력되게 해주세요.

class Main {
  public static void main(String[] args) {
    전사 a전사0 = new 전사();
    a전사0.나이 = 20;
    a전사0.이름 = "칸";
    a전사0.성격 = "차가움";
    a전사0.a무기 = new();
    
    전사 a전사1 = new 전사();
    전사 a전사2 = new 전사();
    전사 a전사3 = new 전사();
    전사 a전사4 = new 전사();
    전사 a전사5 = new 전사();
    
    System.out.println(a전사0.이름);
    // 출력 : 칸
    System.out.println(a전사1.이름);
    // 출력 : No Name
    System.out.println(a전사2.이름);
    // 출력 : No Name
    System.out.println(a전사3.이름);
    // 출력 : No Name
    System.out.println(a전사4.이름);
    // 출력 : No Name
    System.out.println(a전사5.이름);
    // 출력 : No Name
  }
}

class 전사 {
  int 나이;
  String 이름;
  String 성격;
  무기 a무기;
  
  // `전사()` 는 생성자 메서드 이다.
  // 클래스 명과 같은 이름의 메서드를 생성자 메서드 라고 한다.
  // 생성자 메서드는 자동으로 호출됩니다.
  // 생성자 메서드는 new 할때(객체 생성할 때) 자동으로 호출됩니다.
  // 생성자 메서드는 다른 모든 메서드 보다 가장 먼저 딱 1번 실행됩니다.
  // 생성자 메서드는 리턴타입이 없습니다.
  // 당연하지만 생성자 메서드는 리턴값도 없습니다.
  전사() {
    // 수정가능지역 시작
    this.나이 = 20;
    this.이름 = "No Name";
    this.성격 = "온순함";
    this.a무기 = new();
    // 수정가능지역 끝
  }
}

abstract class 무기 {
  
}

classextends 무기 {

}

classextends 무기 {

}

문제 - 사람이 생성할 때 자동으로 a왼팔 변수에 팔 객체가 연결되게 해주세요.

// 출력 : 아래와 같이 출력되게 해주세요.

class Main {
  public static void main(String[] args) {
    new 사람().걷다();
   
    System.out.println(new 사람().a왼팔.길이 + "cm");
    // 출력 : 100cm
  }
}
class 사람 {
  팔 a왼팔;

  사람 () {
    a왼팔 = new();

    // 만약에 팔 클래스에 `팔` 생성자를 못 쓰는 상황이다.
    // 그렇다면 아래와 같은 코드가 필요하다.
    //a왼팔.길이 = 100;
  }

  void 걷다() {
    System.out.println("사람이 걷습니다.");
  }
}
class{
  int 길이;() {
    this.길이 = 100;    
  }
}
// 문제 : 사람의 걷다 메서드에 this. 를 적절한 곳에 추가해주세요.

class Main {
  // 함수, 메서드
  // 단순히 프로그램의 시작점!
  public static void main(String[] args) {
    // 지역변수 => 하루살이 변수
    int k = 10;
    
    사람 a사람 = new 사람();
    
    // 나이는 인스턴스 변수 입니다.
    // 객체가 없어질 때 까지 유지됩니다.
    a사람.나이 = 20;
    
    int dan = 8;
    for ( int i = 1; i < 9; i++ ) {
      System.out.println(dan + " * " + i + " = " + dan * i);
    }
    
    System.out.println(a사람.나이);
    a사람.걷다();
  }
}

class 사람 {
  // 인스턴스 변수
  int 나이; // 출력문에 this.를 붙이면 매서드 밖에 있는 변수와 연결된다.
  
  void 걷다() {
    int 나이 = 22; // 출력문에 this.를 안붙이면 매서드 안에 있는 변수와 연결된다.
    
    System.out.println(this.나이 + "살인 홍길동씨가 걷습니다.");
  }
}

git
깃헙 관련 수업페이지

윈도우 git 업데이트

git update-git-for-windows

git 진입순서
git init → git status → git add . → git commit -m "" → git config user.name → git config user.email → git remote add origin "주소" → git push origin main → git branch

git(명령어)

clear → git Bash 로그 삭제
cd → 이동
shift insert → git Bash에서 붙여넣기
ls → 리스트보기
git init → .git이 생기면 버전관리를 해줌
git status → 변경사항 확인
git add . → 전체 추가(.을 사용하면 전체)
git commit -m "test" → 로컬 저장소에 올림. 푸쉬까지하면 리모트 저장소에 올라감
git config user.name "git ID" → 프로그램의 설정값들을 저장 할 ID
git config user.email "git email" → 프로그램의 설정값들을 저장 할 email
git config --list → config 리스트 확인
git remote add origin → 원격 저장소 추가(저장 할 git 주소 넣으면 됨)
git remote -v → 저장소 연결확인
git remote remove origin → 저장소 연결 삭제
git push origin main → 저장소로 전송
git push -u origin main → 이후에는 해당 브렌치는 이후 origin main 기입 안해도 됨
git branch → branch 목록 확인
git branch test → 생성(test는 새로 생성한 branch 이름)
git checkout 'branch 이름' → branch 이동
git pull origin test → 다른 곳에서 업데이트를 했을 경우 동기화(test는 branch 이름)
git log → 업데이트 했던 목록확인
git log --oneline --graph --all --decorate
git branch -d test → test 브렌치 삭제

git init → git status → git add . → git commit -m "" → git config user.name → git config user.email → git remote add origin "주소" → git push origin main → git branch

git bash에
git colne https://github.com/ohgil/testtt.git(레포지토리 주소)
입력하면 리모트 됨.

깃 푸쉬 풀 머지는 연습 더 해야됨

profile
문제 해결을 위해 끊임없이 파고드는 걸 좋아합니다.

0개의 댓글