· 접근제한자 

 - 클래스 내의 메멉에 접근을 제한하기 위한 예약어



· 접근 제한자의 종류

 - private : 하나의 클래스 내에서만 사용 가능한 멤버를 지정할 때 사용하는 제한자

 - package : 동일 파일 + 동일 폴더

 - protected : 동일 파일 + 동일 폴더 + 상속

 - public : 객체를 가진 모든 영역

i++는 내부적으로 다음과 같이 동작한다.

1. i의 현재 값을 보관한다. (현재 실행되는 명령문에서는 이 보관된 값이 사용되어야 하니까)

2. i의 값을 1 더한다.

3. 보관했던 값을 반환한다.


++i는 내부적으로 다음과 같이 동작한다.

1. i의 값을 1 더한다.

2. i의 값을 반환한다.



'내 첫사랑! 컴퓨터 프로그래밍' 카테고리의 다른 글

개발자의 조건?!  (0) 2017.01.04
접근제한자란  (0) 2017.01.02
static 변수에 대해서  (0) 2016.12.06
if문에서 break 명령 사용의 의미  (0) 2016.12.03
Error클래스와 Exception클래스 비교  (0) 2016.03.28
import java.io.*;
public class Room_mgmt_2 {
   public static void main(String[] args) throws IOEception {
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));


      boolean status = true, stat = true;
      int numoffloor = 0;
      int menu = 0;
      int fn = 0;
      System.out.println("================================");
      System.out.println("\thotel management");
      System.out.println("================================");
      System.out.println("Number of floors = ");
      numoffloor = Integer.parseInt(in.readLine());
      System.out.println();
      int[] numofroom = new int[numoffloor];
      String[][] roomname = new String[numoffloor][];
      String[][] guestname = new String[numoffloor][];
      int[][] numofparty = new int[numoffloor][];
      int[][] charge = new int[numoffloor][];
      int[][] days = new int[numoffloor][];
      for(int i=0;i<numoffloor;i++) {
           System.out.print("Number of rooms of floor " + (i+1) + "=");
           numofroom[i] = Integer.parseInt(in.readLine());
           System.out.println();
           roomname[i] = new String[numofroom[i]];
           guestname[i] = new String[numofroom[i]];
           numofparty[i] = new int[numofroom[i]];
           charge[i] = new int[numofroom[i]];
           days[i] = new int[numofroom[i]];
           System.out.println("Basic Data floor #" + (i+1) + ":");
           for(int j=0;j<numofroom[i];j++) {
                System.out.println("  Basic Data for Room #" + (j+1) + " : ");
                System.out.println("    Room name = ");
                roomname[i][j] = in.readLine();
                System.out.print("      Charge for 1 day = ");
                charge[i][j] = Intger.parseint(in.readLine());
           }
      }


      do {     
          System.out.println(" 1 : Check in / 2 : Check out / 3 : Room Information / 0 : Exit");
          System.out.print("Type Menu (0~3) = ");
          menu = Integer.parseInt(in.readLine());
          System.out.println();


          stat = true;


          switch (menu) {
              case 0:
                  status = false;
                  break;
              case 1:
                  do {
                      stat = false;
                      System.out.print(" Check in Floor = ");
                      fn = Integer.parseInt(in.readLine());
                      if(fn <= 0 || numofloor < fn) stat=true;
                  } while (stat);
                  fn--;
                  stat=true;
                  System.out.println();
                  System.out.println("\tFloor = " + (fn + 1));
                      System.out.println("\t==========\t ==========\t ==========\t ==========");
                      System.out.println("\tRoom #\t Room Name\t Charge/day\t Guest\t Num of party");
                      System.out.println("\t==========\t ==========\t ==========\t ==========");
                  for(int i=0;i<numofroom[fn];i++)
                      System.out.println("\t" + (i+1) + "\t " + roomname[fn][i] + "\t " + charge[fn][i] + "/day\t " + guestname[fn][i] + "\t " + numofparty[fn][i]);
                      System.out.println("\t==========\t ==========\t ==========\t ==========");
                  do {
                      System.out.print(" Check in Room Number ( 0 = cancel ) = ");
                      int rn = Integer.parseInt(in.readLine());
                      if(rn == ) break;
                      --rn;
                      if(0<=rn && rn < numofroom[fn] && guestname[fn][fn] == null) {
                          stat = false;
                          System.out.print(" Guest name = ");
                          guestname[fn][fn] = in.readLine();
                          System.out.print(" Number of party = ");
                          numofparty[fn][fn] = Integer.parseInt(in.readLine());
                          System.out.print(" Number of day = ");
                          days[fn][rn] = Integer.parseInt(in.readLine());
                      }
                   } while (stat);
                   break;
             case 2:
                 do {
                     stat = false;
                     System.out.print(" Check out Floor = ");
                     fn = Integer.parseInt(in.readLine());
                     if(fn <= 0 || numofloor < fn) stat=true;
                 } while(stat);
                 fn--;


                 stat = true;
                 System.out.println();
                 System.out.println("\tFloor = " + (fn + 1));
                     System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                     System.out.println("\tRoom #\t Room Name\t Charge/day\t Guest\t Num of party");
                     System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                 for(int i=0; i<numofroom[fn]; i++)
                         System.out.println("\t" + (i+1) + "\t " + roomname[fn][i] + "\t " + charge[fn][i] + "/day\t " + guestname[fn][i] + "\t " + numofparty[fn][i]);
                     System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                 do {
                     System.out.print(" Check out Room Number ( 0 = cancel ) = ");
                     int rn = Integer.parseInt(in.readLine());
                     if(rn == ) break;


                     --rn;
                     if( 0 <= rn && rn < numofroom[fn] && guestname[fn][fn] != null) {
                           stat = false;
                                   System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                                   System.out.println("\t" + (rn+1) + "\t " + roomname[fn][fn] + "\t " + charge[fn][rn] + "/day");
                                   System.out.println("\t\t  " + guestname[fn][rn] + " (" + numofparty[fn][rn] + ")\t \" + days[fn][rn] * charge[fn][rn] + "/" + days[fn][rn] + " days");
                                   System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                                   guestname[fn][rn] = null;
                                   numofparty[fn[prn] = 0;
                                   days[fn][rn] = 0;
                                }
                              } while (stat);
                              break;
             case 3:           
                for (fn = 0; fn < numoffloor; fn++) {
                     // System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                     System.out.println();
                     System.out.println("\tFloor = " + (fn + 1));
                      System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                     System.out.println("\tRoom #\t  Room Name\t Charge/day\t Guest\t Num of party");
                     System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                     for (int i = 0; i < numofroom[fn]; i++)
                          System.out.println("\t" + (i+1) + "\t "+ roomname[fn][i] + "\t " + charge[fn][i] + "/day\t " + guestname[fn][i] + "\t " + numofparty[fn][i]);
                          System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                }
                break;
             default:
                 System.out.println("illegal menu1");
          } 
        } while (status);
        System.out.println("Good Luck! Bye");
     }
}



 

# While 문은 미리 반복 횟수를 알 수 없고 조건에 따라 반복하는 경우에 사용한다.

   조건이 만족되면 반복을 계속하는 구조!

 

# 무한 루프는 조건식으로 true를 적으면 된다.

 

static으로 선언된 변수, 클래스 변수라고 한다.


그 이유인즉, static으로 선언된 변수는

변수가 선언된 클래스의 모든 인스턴스(객체)가 공유할 수 있는 변수이기 때문이다.


의문을 갖다고 생각해보면

우리 네트워크로 연결되어있는 컴퓨터의 폴더를 공유를 하면

다른 사람들도 볼 수 있고, 권한도 부여해주면 다른 사람이 수정도 가능하다.


그럼 어떻게 할까?

마지막에 수정한 파일만이 존재한다.


※ 수정 권한을 주지 않을 때는 final로 선언하면 되겠다.



System.in.read()

콘솔 창에서 입력을 받는 함수이다.

콘솔창에 입력 되는 값은 모두 아스키코드 값으로 입력받는다.

  예 1) A를 입력 받으면 A의 아스키 코드값인 65가 입력된다. ​

  예 2) 숫자 0을 입력받으면 아스키 코드값인 48이 입력된다.

활용방법

 

예 1)

    ​char a = (char) System.in.read();

    이 함수가 입력되는 것은 0~255까지의 아스키코드 값이므로 char형으로 받고 싶다면 형변환을

   ​ 하여서 받아야한다.​

예 2)

    int a = System.in.read() - 48;

    숫자를 문자로 인식하기 때문에 해당 숫자의 아스키코드값을 입력받게된다. 따라서 0의 아스키

​    코드값인 48을 빼주어서 입력받는다.

**예외 처리가 필요한 함수이다.

import java.io.*;

public static void main(String[] arg) throws java.io.IOException{}​

System.in.readLine()​

read()의 활용함수. 즉 콘솔창에서 라인 전체를 읽어온다. 이 때, 엔터키 또한 라인에 포함되어서 읽어지는 것과 엔터키는 이 함수가 알아서 처리한다는 점을 주의해야한다.​

 

 

<read.line() 함수 관련 예제>

import java.io.*;
public class Exam_08 {
   public static void main(String[] ar) throws IOException{
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));


      int inwon = 0;
      String[] name = null;
      int[] age = null;


      System.out.println("인원 =");
      inwon = Integer.parseInt(in.readLine());
      name = new String[inwon];
      age = new int[inwon];


      for(int i=0; i<inwon; ++i){
          System.out.println(i+1+"번째 사람의 이름 = ");
          name[i] = in.readLine();
          System.out.println(i+1+"번째 사람의 나이 =");
          age[i] = Integer.parseInt(in.readLine());
      }


      System.out.println();
      for(int i=0;i<inwon;++i){
          System.out.println(i+1+":"+name[i] + ":"+age[i]);
      } 

 

 

if문에서 break명령의 사용의미는 "if문에 있는 블록을 제외하고 가장 가까이 있는 블록"을 의미합니다.

예를들어 아래와 같은 코드가 있다면,


public class Exam_11 {

     public static void main(String[] arg) {
           for(int i = 0; i < 5; ++i) {
               if(i == 2) {
                  break;
               }
               System.out.println("*");
           }
     }
}


위 코드에서 break문의 의미는 if문이 있는 블록을 제외한 가장 가까운 블록이

System.out.println("*"); 아래 있는 }(괄호)로 이동되어 프로그래밍 코드가 수행이 되게 된다. 


         

'내 첫사랑! 컴퓨터 프로그래밍' 카테고리의 다른 글

개발자의 조건?!  (0) 2017.01.04
접근제한자란  (0) 2017.01.02
증감연산자 i++와 ++i의 차이  (0) 2016.12.12
static 변수에 대해서  (0) 2016.12.06
Error클래스와 Exception클래스 비교  (0) 2016.03.28
Total
Today
Yesterday