티스토리 뷰
1. 스태틱 변수의 다른 용어 3가지는?
공유 변수, 클래스 변수, 정적 변수
2.스태틱 변수의 접근 방법은?
클래스 내부 : 변수가 선언된 클래스 내에서는 변수명으로 직접 접근이 가능하다.
클래스 외부 : private로 선언되지 않았을 경우 접근 가능. 접근 제한자가 허용하는 범위세서 접근 가능하다.
3.스태틱 변수의 활용의 예를 드시오.
static 사용의 대표적인 예시 중 하나가 PI이다.
◈ 인스턴스 별로 가지고 있을 필요가 없는 변수를 static으로 지정한다.
- 값의 참조가 목적인 변수
- 값의 공유가 목적인 변수
4.스태틱 함수에 인스턴스 라면이 올수 없는 이유는?
인스턴스 변수와 인스턴스 함수는 객체 생성 될 때 메모리에 올라간다. 그런데 staitc은 객체 생성 전에 이미 메모리에 올라가 있기 때문에(메모리 생성에 시간차가 나기때문에)
인스턴스 함수에는 static함수나 변수가 오는 것은 가능하다.(static은 먼저 메모리에 올라가 있기 때문에)
실무에서는 보통 static 함수는 static 변수를 다루기 위해서 사용한다.
5. 아래의 프로그램에서 기존에 값을 다이렉트로 넣었던 부분을 Scanner 로 입력 받아 처리 하시오.
int math, science, english;
math = 90;
science = 80;
english = 80;
Grade me = new Grade(math, science, english);
System.out.println("평균은 " + me.average());
System.out.println(me.getGrade()); //우 입니다.
package prac.cosmo.ex.defult;
import java.util.Scanner;
class Grade{
private int math, science, english;
public Grade(int math, int science, int english) {
this.math = math;
this.science = science;
this.english = english;
}
public double average() {
return (math + science + english) / 3.0;
}
public String getGrade() {
if(average() >= 90) {
return "수 입니다.";
}
else if(average() >= 80) {
return "우 입니다.";
}
else if(average() >= 70) {
return "미 입니다.";
}
else if(average() >= 60) {
return "양 입니다.";
}
else {
return "가 입니다.";
}
}
}
public class ScannerPrac3{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("수학, 과학, 영어 점수를 입력하세요.");
int math = sc.nextInt();
int science = sc.nextInt();
int english = sc.nextInt();
Grade me = new Grade(math, science, english);
System.out.println("평균은 " + me.average());
System.out.println(me.getGrade());
}
}
6.아래의 가위바위보 게임을 짜시오.
-난수 발생 함수가 필요 할것입니다. 아래의 메소드를 참고 해 주세요.
- (Math.random() * 3 + 1);
출력=======================
가위, 바위, 보 중 하나를 입력하세요.
가위
바위
졌습니다.
계속하시겠습니까?(Y/N)
y
가위, 바위, 보 중 하나를 입력하세요.
보
보
비겼습니다.
sysout("계속하시겠습니까?(Y/N)");
char yesOrNo = scanner.next().charAt(0);
1. Class를 어떻게 만들가 구상해 본다.
RSPTest 클래스를 만듦(Main)
먼저 한개만 돌아가게 해놓고 전체를 반복문 돌림
player 클래스 만들고(객체 두개 생성)
가위바위보 담고(변수로)
가위바위보 결과(result)를 출력하는 함수
rsp == "가위" 문자열은 ==에 사용할 수 없다.
(Math.random() * 3 + 1); → 1부터 3까지
(Math.random() * 10 + 1); → 1부터 10까지
import java.util.Scanner;
class Player{
private int rsp; // 1.가위 2.바위 3.보
public Player(String rsp) {
if(rsp.equals("가위")) {
this.rsp = 1;
}
else if(rsp.equals("바위")) {
this.rsp = 2;
}
else {
this.rsp = 3;
}
}
public Player() {
this.rsp = (int)(Math.random()*3 + 1);
}
private String getRSPString(int rsp) {
String str;
if(rsp == 1)
str = "가위";
else if(rsp ==2)
str = "바위";
else
str = "보";
return str;
}
public void result(Player player) {
System.out.println("나는:" + getRSPString(this.rsp) + " 당신은:" + getRSPString(player.rsp));
if(this.rsp == player.rsp) {
System.out.println("비겼습니다.");
return;
}
if(this.rsp == 1 && player.rsp == 2) {
System.out.println("제가 졌습니다.");
}
else if(this.rsp == 1 && player.rsp == 3) {
System.out.println("제가 이겼습니다.");
}
else if(this.rsp == 2 && player.rsp == 1) {
System.out.println("제가 이겼습니다.");
}
else if(this.rsp == 2 && player.rsp == 3) {
System.out.println("제가 졌습니다.");
}
else if(this.rsp == 3 && player.rsp == 1) {
System.out.println("제가 졌습니다.");
}
else if(this.rsp == 3 && player.rsp == 2) {
System.out.println("제가 이겼습니다.");
}
}
}
public class RSPTest {
public static void main(String[] args) {
while(true) {
Scanner sc = new Scanner(System.in);
System.out.println("가위 바위 보를 입력하세요.");
String rsp = sc.next();
Player you = new Player(rsp);
Player com = new Player();
com.result(you);
System.out.println("계속 : Y / 중단 : N");
char ch = sc.next().charAt(0);
if(ch == 'N' || ch == 'n') {
break;
}
}
System.out.println("게임 종료 입니다.");
}
}
'수업문제' 카테고리의 다른 글
[문제] 10월 19일 (String) (0) | 2021.10.19 |
---|---|
[문제] 10월 18일 (오버로딩, this, String 객체) (0) | 2021.10.18 |
[문제] 10월 14일 (경로, 패키지, 정보 은닉, 접근 제한자) (0) | 2021.10.14 |
[문제] 10월 13일 (참조형, 생성자, null) (0) | 2021.10.13 |
- Total
- Today
- Yesterday
- exception
- equals
- 쿠키
- abstract
- TreeSet
- Servlet
- JSP
- SOCKET
- 부트스트랩
- Request
- hashset
- Session
- 래퍼 클래스
- 예외처리
- 사칙연산 계산기
- 진척도 70번
- 참조형
- 쓰레드
- compareTo
- 입출력
- toString
- response
- 세션
- 채팅
- object
- 프로토콜
- 제네릭
- el
- Generic
- string
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |