본문 바로가기

IT일반과목/java

메소드와 객체와 인스턴스

메소드를 호출하는 방식

1. 값 호출(Call by Value)

 -> 인수의 값을 호출한 함수에 전달

ex) testFunction(arr[0])


2. 참조 호출(Call by Reference)

 -> 인수의 주소값을 호출한 함수에 전달

ex) testFunction(arr)



자바는 객체지향이다.

객체지향의 장점

1. 코드의 재사용성이 높다.

 -> 새로운 코드를 작성할때도 기존코드를 이용해서 쉽게 작성이 가능하다.

2. 코드의 관리가 용이

 -> 코드간의 관계를 이용해서 코드변경 용이

3. 신뢰성이 높다.

 -> 제어자, 메소드 등을 사용하여 데이터를 보호

 -> 코드의 중복제거 오동작 방지 가능


- 객체 - 속성이랑 기능의 집합

 -> 속성 -> 변수 (속성을 변수라고 한다.)

 -> 기능 -> 메소드 (기능을 메소드라고 한다.)

 -> 변수 + 메소드 -> 클래스 (변수와 메소드를 합친걸 클래스라고 하는데 정확히는 같은 의미는 아니다.)

 -> 클래스는 객체를 만드는 설계도 이다.


추상화

 -> 객체에서 필요한 속성과 기능을 추출하고 불필요한 것들을 제거하는 과정


ex)아파트가 있다고 하면 아파트는 객체이다.

자이아파트, e-편한세상 등등 이름이 앞에 붙은건 다 인스턴스이다.

그러므로 객체에 인스턴스가 포함된다.


객체와 인스턴스에 대한 연습하기 소스

---------------------------------------------------------------------------------------------------------------------------------------

출력

== == == == 학원수업 == == == ==

오늘 수업은 2교시 입니다.

(랜덤)수업에 지각하셨습니다.준비성이 감소합니다.

준비성-1

1교시가 시작되었습니다.

-------------------

선생님이 수업을 진행하십니다.

수업이 이해가나요?(y,n)y

수업 이해도가 증가합니다.

수업이해도1

-------------------

선생님께 질문 하시겠습니까?(y,n)n

수업을 빠르게 끝내고 싶은 마음이 증가하였습니다.

수업 빨리 끝내고싶은 마음1

1교시 쉬는시간이 시작되었습니다.

-------------------

쉬는시간엔 무엇을 하시겠습니까?

1. 공부  2.놀기

1

거짓말하지마세요 이해도증가

수업이해도2

점심시간이 다가왔습니다.

-------------------

점심시간이 찾아왔습니다.

1. 나가서 먹는다. 2.라운지에서 먹는다.

입력 :1

얼마를 쓰셨나요? : 25000

2교시가 시작되었습니다.

-------------------

선생님이 수업을 진행하십니다.

수업이 이해가나요?(y,n)n

더욱더 열심히 들으세요

수업이해도1

-------------------

선생님께 질문 하시겠습니까?(y,n)y

(랜덤)선생님이 안받아주십니다.자신감이 감소합니다.

수업 빨리 끝내고싶은 마음0

2교시 쉬는시간이 시작되었습니다.

-------------------

쉬는시간엔 무엇을 하시겠습니까?

1. 공부  2.놀기

2

역시 쉬는시간엔 놀아야죠 이해력감소

수업이해도0   빨리끝내고싶은마음 1

수업이 끝났습니다.

-------------------

오늘 수업의 만족도는?(상/중/하)

입력 :상

==== 총 결과 ====

만족도 :상  수업이해도 :0

빨리끝내고싶은마음 : 1   자신감 : -1

준비성 : -1   쓴돈 : 25000원


-----------------------------------------------------------



package jongkyu.study;

import java.util.Random;
import java.util.Scanner;

public class Study {

Scanner sc = new Scanner(System.in);
Random r = new Random();
char answer;
int junbi;
int eihae;
int funny;
int jasingam;
int fast;
int answer2;
int money;
int input;
char manjok;
public void main() {
while(funny!=1) {
System.out.println("== == == == 학원수업 == == == ==");
System.out.println("오늘 수업은 2교시 입니다.");
input=2;
answerStudy();
for(int i=0; i<input; i++) {
System.out.println((i+1)+"교시가 시작되었습니다.");
studySuup();
studyQuestion();
System.out.println((i+1)+"교시 쉬는시간이 시작되었습니다.");
breakTime();
if(i==0) {
System.out.println("점심시간이 다가왔습니다.");
lunchTime();
}

}
System.out.println("수업이 끝났습니다.");
endTime();
funny++;

System.out.println("==== 총 결과 ====");
System.out.printf("만족도 :%c  수업이해도 :%d\n",manjok,eihae);
System.out.printf("빨리끝내고싶은마음 : %d   자신감 : %d\n",fast,jasingam);
System.out.printf("준비성 : %d   쓴돈 : %d원\n",junbi,money);
}

}
public void endTime() {
System.out.println("-------------------");
System.out.print("오늘 수업의 만족도는?(상/중/하)\n입력 :");
manjok = sc.next().charAt(0);
}
public void breakTime() {
System.out.println("-------------------");
System.out.println("쉬는시간엔 무엇을 하시겠습니까?");
System.out.println("1. 공부  2.놀기");
answer2=sc.nextInt();
if(answer2==1) {
System.out.println("거짓말하지마세요 이해도증가");
eihae++;
System.out.println("수업이해도"+eihae);
}
else {
System.out.println("역시 쉬는시간엔 놀아야죠 이해력감소");
eihae--;
fast++;
System.out.println("수업이해도"+eihae+"   빨리끝내고싶은마음 " + fast);
}
}
public void lunchTime() {
System.out.println("-------------------");
System.out.println("점심시간이 찾아왔습니다.");
System.out.print("1. 나가서 먹는다. 2.라운지에서 먹는다.\n입력 :");
answer2=sc.nextInt();
if(answer2==1) {
System.out.print("얼마를 쓰셨나요? : ");
money=sc.nextInt();
}
else
System.out.println("라운지에서 드셨네요 . 돈이 절약되었습니다.");
}
public void studyQuestion() {
System.out.println("-------------------");
System.out.print("선생님께 질문 하시겠습니까?(y,n)");
answer=sc.next().charAt(0);
if(answer=='y' || answer=='Y') {
if(r.nextInt(2)==0) {
System.out.println("(랜덤)선생님이 안받아주십니다.자신감이 감소합니다.");
jasingam--;
fast--;
System.out.println("수업 빨리 끝내고싶은 마음"+fast);
}
else {
System.out.println("(랜덤)선생님이 받아주셨습니다. 자신감이 증가,수업늦게끝나는마음증가");
jasingam++;
fast--;
System.out.println("수업 빨리 끝내고싶은 마음"+fast);
}
}
else {
System.out.println("수업을 빠르게 끝내고 싶은 마음이 증가하였습니다.");
fast++;
System.out.println("수업 빨리 끝내고싶은 마음"+fast);
}
}



public void studySuup() {
System.out.println("-------------------");
System.out.println("선생님이 수업을 진행하십니다.");
System.out.print("수업이 이해가나요?(y,n)");
answer=sc.next().charAt(0);
if(answer=='y' || answer=='Y') {
System.out.println("수업 이해도가 증가합니다.");
eihae++;//이해도 증가
System.out.println("수업이해도"+eihae);
}else {
//끝나고 준비성과 이런걸 출력할때 여기다가 바로 출력하기 그후 리턴
eihae--;//이해도 감소
System.out.println("더욱더 열심히 들으세요");
System.out.println("수업이해도"+eihae);
}

}


public void answerStudy() {
if(r.nextInt(2)==0) {
System.out.println("(랜덤)빨리오셨네요 선생님이 지각하셨어요 준비성이 증가합니다.");
junbi++;
System.out.println("준비성"+junbi);
}else {
System.out.println("(랜덤)수업에 지각하셨습니다.준비성이 감소합니다.");
//끝나고 준비성과 이런걸 출력할때 여기다가 바로 출력하기 그후 리턴
junbi--;
System.out.println("준비성"+junbi);
}
}






}






'IT일반과목 > java' 카테고리의 다른 글

자바 getter과 setter적용된것  (0) 2018.07.20
자바 gettet setter 적용되기전  (0) 2018.07.20
자바 약수 구하기  (0) 2018.07.18
자바 이중배열  (0) 2018.07.18
자바 예외 처리  (0) 2018.07.18