다음 연산의 결과를 적으시오.

[연습문제] /ch3/Exercise3_1.java

class Exercise3_1 {
  public static void main(String[] args) {
    int x = 2;
    int y = 5;
    char c = 'A'; // 'A' 의 문자코드는 65
    System.out.println(1 + x << 33);
    System.out.println(y >= 5 || x < 0 && x > 2);
    System.out.println(y += 10 - x++);
    System.out.println(x+=2);
    System.out.println( !('A' <= c && c <='Z') );
    System.out.println('C'-c);
    System.out.println('5'-'0');
    System.out.println(c+1);
    System.out.println(++c);
    System.out.println(c++);
    System.out.println(c);
  }
}

 

- System.out.println(c+1);

  + c+1은 정수값이며, 이를 출력하면 66이 된다. 왜냐하면 char + int = int로 자동 형 변환되므로 int가 결과로 도출된다.

- System.out.println(++c);

  + ++c는 char가 되며, 'B'가 된다. 왜냐하면 CPU내에서는 int로 동작되지만 이 값이 char로 저장되어야 하며, 이를 출력하는 것이므로 'B'가 된다.

- System.out.println(c++);

  + c는 'B'이므로 'B'가 출력이 된다. 이후 c는 증가하여 'C'가 된다.

- System.out.println(c);

  + c가 'C'이므로 'C'가 출력된다.

Posted by 세상을 살아가는 사람
,
protected 접근 제어자는 클래스에서는 사용을 하지않고, 멤버변수와 매소드에서 사용을 한다. protected를 선언한 클래스를 상속을 받은 클래스에게는 public으로 동작을 하고, 그외 클래스에게는 private로 동작을 한다.

Posted by 세상을 살아가는 사람
,

자바 라벨 제어문

자바 2017. 5. 12. 19:22
자바의 라벨 제어문은 continue와 break와 같이 연계하여 사용이 된다.
이중 반복문에서, 어떤 조건에서 이중 반복문을 벗어나거나 바깥쪽 반복문으로 벗어나도록 하기 위하여 라벨을 사용한다.

// Label을 이용한 continue문 프로그램 예제

public class LabelContinue {
    public static void main(String[] args) {
        jump: for(int x = 1;x <= 7;x++) {
            System.out.println("x 값 = " + x);
            for(int y = 1;y <= 5;y++) {
                System.out.println("y 값 = " + y);
                if(x <= 2)
                    continue jump;
                else if(x <= 4)
                    break jump;
                System.out.println("x = " + x + " : y = " + y);
            }
            System.out.println("x 값 = " + x);
        }
        System.out.println("프로그램 종료");
    }
}

실행 결과는 다음과 같다.

x 값 = 1

y 값 = 1

x 값 = 2

y 값 = 1

x 값 = 3

y 값 = 1

프로그램 종료

x 값이 2보다 작거나 같으면 바깥쪽 while 문으로 continue가 수행이 되고

x 값이 3일 경우 바깥쪽 while 문으로 break가 수행이 되어 while 문이 종료되고 프로그램 종료가 출력됨을 확인할 수 있다.

'자바' 카테고리의 다른 글

자바의 정석 연습문제 풀이 3-1 중  (0) 2022.06.29
자바 protected 접근 제어자  (0) 2017.05.18
utf-8로 저장된 자바 파일 에러 방지  (0) 2017.05.10
자바 super와 this  (0) 2017.04.06
자바 매소드 오버라이딩  (0) 2017.04.05
Posted by 세상을 살아가는 사람
,
메모장으로 Java 프로그래밍을 할 때 한글처리에 대한 어려움이 있다.
다음과 같은 프로그램을 메모장으로 작성하고

// 한글 주석을 가진 자바 프로그램
/* 주석 */

public class HelloJava {
  public static void main(String args[]) {
    System.out.println("첫 번째 자바 프로그램");
  }
}

메모장 저장 방법은 
파일 형식으로 "모든 파일"을 선택하고, 인코딩을 "UTF-8"로 선택한 후
파일이름을 "HelloJava.java"로 저장합니다.

그리고 나서 다음과 같이 compile을 하면

C:> javac -encoding utf-8 HelloJava.java

FirstJava.java:1: error: illegal character: '\ufeff'
?// 첫번째 자자 프로그램
^
1 error

와 같은 error가 발생한다.

그래서 다른 블로그 http://pk09.tistory.com/entry/Android-Studio-102-error-illegal-character-ufeff-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0를 참조하니

유니코드 BOM이라는 것을 파일 맨앞에 표시를 해주는데, 그것을 javac compiler가 인식하지 못해서 발생하는 것이라고 합니다.

그리고 해결방법은 다른 텍스트 에디터를 사용하라고 해서

wordpad로 작업을 해 보았습니다.


같은 문장을 작성한 후 저장을

파일 형식은 "유니코드 택스트 형식"으로 하고, 파일 이름을 "Hello.java"로 하여 저장한 후

C:> javac HelloJava.java로 compile을 하고

C:> java HelloJava로 실행하면 정상 수행된다.

'자바' 카테고리의 다른 글

자바 protected 접근 제어자  (0) 2017.05.18
자바 라벨 제어문  (0) 2017.05.12
자바 super와 this  (0) 2017.04.06
자바 매소드 오버라이딩  (0) 2017.04.05
자바 접근 제어자  (0) 2017.04.05
Posted by 세상을 살아가는 사람
,

자바 super와 this

자바 2017. 4. 6. 12:34
클래스의 상속관계에서 super는 부모 클래스를 지칭하고, this는 자식 클래스를 지칭한다.
또한 super ()와 this ()는 클래스에 대한 생성자를 지칭한다. 즉, super ()는 부모 클래스의 생성자를, this ()는 자식 클래스의 생성자를 지칭한다.
생성자는 상속이 되지 않는다. 부모 클래스에서 인자가 있는 생성자가 존재할 경우, 명시적으로 디폴트 생성자를 표시 해주는 것이 필수는 아니지만 필요하다.

'자바' 카테고리의 다른 글

자바 protected 접근 제어자  (0) 2017.05.18
자바 라벨 제어문  (0) 2017.05.12
utf-8로 저장된 자바 파일 에러 방지  (0) 2017.05.10
자바 매소드 오버라이딩  (0) 2017.04.05
자바 접근 제어자  (0) 2017.04.05
Posted by 세상을 살아가는 사람
,
객체를 상속한 자식 클래스는 부모로부터 상속을 받은 매소드가 있다. 자식 클래스는 이 매소드를 사용할 수도 있지만 자식의 고유 기능을 재정의 할수도 있다. 이와 같이 부모로부터 상속을 받은 매소드를 재정의하여 사용하는 것을 매소드 오버라이딩(override)라고 한다.
인자로 정의된 것과 반환 유형은 변하지 않아야 한다.

'자바' 카테고리의 다른 글

자바 protected 접근 제어자  (0) 2017.05.18
자바 라벨 제어문  (0) 2017.05.12
utf-8로 저장된 자바 파일 에러 방지  (0) 2017.05.10
자바 super와 this  (0) 2017.04.06
자바 접근 제어자  (0) 2017.04.05
Posted by 세상을 살아가는 사람
,

자바 접근 제어자

자바 2017. 4. 5. 12:15
- 클래스, 멤버변수, 매소드에 대한 접근 권한 설정
- 종류 : public, protected, default, private
- public : 어디서든지 접근이 가능
- protected : 외부 클래스에서는 접근이 허용되지 않으며, 상속받은 클래스에서 접근 가능. 멤버변수와 매소드에서 지원.
- private : 상속받은 클래스에서도 접근이 허용되지 않음. 선언된 클래스내에서만 접근 가능.
- default : 접근 제어자를 사용하지 않을 경우 적용되는 접근 권한. 같은 패키지내에서는 접근이 가능하나 외부 클래스에서는 접근이 허용되지 않음.

private으로 선언하면 외부 클래스에서 접근이 허용되지 않으므로, "정보 은닉"과 같은 객체지향의 하나의 특성을 가진다. 보통 멤버는 private로 선언하여, 외부에서 직접 접근하지 못하게 은닉하고, 멤버를 변경하기 위한 매소드를 public으로 선언하여 간접적으로 값을 변경할 수 있다. 또한 매소드를 통한 접근은 다양한 부가 기능을 추가할수 있어 효과적이다.

'자바' 카테고리의 다른 글

자바 protected 접근 제어자  (0) 2017.05.18
자바 라벨 제어문  (0) 2017.05.12
utf-8로 저장된 자바 파일 에러 방지  (0) 2017.05.10
자바 super와 this  (0) 2017.04.06
자바 매소드 오버라이딩  (0) 2017.04.05
Posted by 세상을 살아가는 사람
,