- 반복문과 조건문에 대한 복습과 Lotto번호 만들기, Up&Down 게임 만들기에 대한 발표를 진행하였고 객체지향과 클래스에 관한 내용을 수업하였다
- Up&Down 게임 만들기 의 코드를 리팩토링하고, 각 과목의 점수를 입력받고 출력하는 Grade 클래스를 만드는 과제를 진행하였다
객체지향
클래스 정의 후 객체생성
1. 클래스 정의
2. 참조 변수 선언 Circle obj;
3. 객체 생성 obj = new Circle();
4. 객체의 필드 접근 obj.color = "blue";
5. 객체 메서드 접근 double area = obj.calcArea();
어떤 클래스로부터 만들어진 객체를 그 객체의 '인스턴스'라 한다.
-> 객체는 모든 인스턴스를 대표하는 포괄적인 의미
-> 인스턴스는 어떤 클래스로부터 만들어진 것인지를 보다 강조하는 의미
클래스 - 사용자 정의 타입
로또번호 - 중복제거 기능 없음
package LionArray;
/**
* 배열 6개 선언
* 1부터 45 랜덤으로 숫자를 넣고 출력하시오. 단 중복없이
*/
public class ArrayLotto {
public static void main(String[] args) {
int[] ball = new int[45]; //45개의 정수값을 저장하기 위한 배열 생성
//1. 배열의 각 요소에 1 ~ 45의 값을 저장한다
for (int i = 0; i < ball.length; i++) {
ball[i] = i + 1; //ball[0]에 1이 저장된다
}
int tmp = 0; //두 값을 바꾸는데 사용할 임시변수
int k = 0; //임의의 값을 얻어서 저장할 변수
//2. 배열의 i번째 요소와 임의의 요소에 저장된 값을 서로 바꿔서 값을 섞는다.
for (int i = 0; i < 6; i++) { //6개만 바꾼다
k = (int) (Math.random() * 45); //0 ~ 44범위의 임의의 값을 얻는다 - 범위의 값을 모두 얻어어 해당 인덱스의 값을 바꿀 수 있다
tmp = ball[i];
ball[i] = ball[k];
ball[k] = tmp;
}
//배열 ball의 앞에서부터 6개의 요소를 출력한다
for (int i = 0; i < 6; i++) {
System.out.printf("ball[%d] = %d%n" , i , ball[i]);
}
}
}
로또 번호 - 중복 제거 기능 추가
package LionArray;
import java.util.Arrays;
public class ArrayLotto2 {
public static void main(String[] args) {
int[] arrLotto = new int[6]; //6개의 값을 생성하기 위한 배열 생성
for (int i = 0; i < arrLotto.length; i++) { // i = 1
arrLotto[i] = (int) (Math.random() * 45) + 1;
for (int k = 0; k < i; k++) {
if (arrLotto[i] == arrLotto[k]) //중복이 나오면 다시 반복한다
i--; //i = 0
}
}
System.out.println(Arrays.toString(arrLotto));
}
}
별찍기 - 변수이름 고려
package Mission;
import java.util.Scanner;
public class Mission1_2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int numOfLines = sc.nextInt(); //층의 높이
for (int i = 0; i < numOfLines; i++) { //층 높이
for (int k = 0; k < numOfLines - i; k++) { //줄 갯수만큼 루프 - (중앙 - 1)에서 하나씩 감소
System.out.print(" ");
}
for (int k = 0; k < (i * 2) - 1; k++) { // 1,3,5...(줄 갯수 * 2)-1 식으로 증가
System.out.print( "* ");
}
System.out.println(""); //줄 바꿈
}
sc.close(); //OS자원을 돌려주고, 추가적인 스캐너 입력 방지
}
}
if문
if (true or false) {
조건 true 시 실행되는 영역
}
-> if문에 속한 문장이 하나일 경우 중괄호 생략 가능
else if문
if (true or false) {
조건 true 시 실행되는 영역
} else {
조건 false 시 실행되는 영역
}
switch문
switch문을 써서 case 작성 - 제약조건
package LionArray;
import java.util.Scanner;
public class Switch {
public static void main(String[] args) {
System.out.println("현재 월을 입력하세요 : ");
Scanner scanner = new Scanner(System.in);
int month = scanner.nextInt(); //화면을 통해 입력받은 숫자를 month에 저장
switch(month) {
case 3 : case 4 : case 5 :
System.out.print("현재 계절은 봄입니다");
break;
case 6 : case 7 : case 8 :
System.out.print("현재 계절은 여름입니다");
break;
case 9 : case 10 : case 11 :
System.out.print("현재 계절은 가을입니다");
break;
case 12 : case 1 : case 2 :
System.out.println("현재 계절은 겨울입니다");
break;
default:
System.out.println("1 ~ 12 사이의 수로 다시 입력해주세요");
break;
}
System.out.println("end");
}
}
가위바위보 게임
package LionArray;
import java.util.Random;
import java.util.Scanner;
public class LockSessoirs {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("가위바위보 게임");
System.out.println("(1. 주먹 2. 가위 3. 보");
System.out.print("숫자를 입력하세요 : ");
int com = 0;
int user = sc.nextInt();
Random r = new Random();
com = r.nextInt(3) + 1;
System.out.println("유저 : " + user);
System.out.println("컴퓨터 : " + com);
if (user == 1) {
if (com == 2) {
System.out.println("승리");
} else if (com == 3) {
System.out.println("패배");
} else {
System.out.println("무승부");
}
} else if (user == 2) {
if (com == 2) {
System.out.println("무승부");
} else if (com == 3) {
System.out.println("승리");
} else {
System.out.println("패배");
}
} else if (user == 3) {
if(com == 2){
System.out.println("패배");
} else if(com == 3){
System.out.println("무승부");
} else {
System.out.println("승리");
}
} else {
System.out.println("다시 입력해주세요");
}
sc.close();
}
}
객체지향 - 학생 프로필
package OOP;
public class OopStudent {
public static void main(String[] args) {
Student student = new Student();
student.name = "Kim";
student.id = "20221937";
student.age = 20;
System.out.println("학생의 이름 : " + student.getName());
System.out.println("학생의 학번 : " + student.getId());
System.out.println("학생의 나이 : " + student.getAge());
}
}
class Student {
String name;
String id;
int age;
public String getName() {
return name;
}
public String getId() {
return id;
}
public int getAge() {
return age;
}
}
학생
package OOP;
class Rectangle{ //static 금지
int width;
int height;
public void setWidth(int width) {
this.width = width;
}
public void setHeight(int height) {
this.height = height;
}
public int getArea() {
return width * height;
}
}
public class StudentApp {
public static void main(String[] args) {
Rectangle rectangle = new Rectangle();
rectangle.setWidth(10);
rectangle.setHeight(10);
Rectangle rectangle2 = new Rectangle();
rectangle2.setWidth(20);
rectangle2.setHeight(20);
System.out.println(rectangle.getArea()); //10
System.out.println(rectangle2.getArea());
}
}
'멋쟁이 사자처럼 2기 150일간의 기록' 카테고리의 다른 글
백엔드 스쿨 자바 4일차 미션 (0) | 2022.09.23 |
---|---|
멋쟁이 사자처럼 백엔드스쿨 2기 5일차 D - 146 - 일정변경으로 인한 계획 수정 (0) | 2022.09.23 |
백엔드스쿨 자바 2일차 미션 (0) | 2022.09.21 |
멋쟁이 사자처럼 백엔드스쿨 2기 3일차 D - 148 : 반복문, 조건문, 배열 (0) | 2022.09.21 |
멋쟁이 사자처럼 백엔드스쿨 2기 2일차 D - 149 (1) | 2022.09.20 |