Java 클래스 객체 사용 연습하기


[조건]

> 클래스 내부에 생존 여부를 가지는 속성 포함

> 이름과 나이를 포함하는 속성 포함

> 이름 정보를 변경하는 기능 포함

> 이름 정보를 반환하는 기능 포함

> 생존여부를 반환하는 기능 포함


> Animal 클래스를 이용하는 테스트 클래스 작성

> Animal 클래스를 이용하여 나이가 3살, 이름이 "큰뿔소"이며 살아있는 객체를 생성

> 생성한 객체의 이름과 생존 여부 출력

> "큰뿔소" 객체의 이름을 "펭귄"으로 변경한 후 이름과 생존 여부 출력


Animal 클래스


{필드}

> live : boolean 타입

> age : int 타입

> name : String 타입

{메소드}

> setName(), getname(), getLive()


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
31
32
33
34
35
36
37
38
39
40
41
class Animal {
    boolean live;
    int age;
    String name;
 
    void Animal(String name) { // 객체로 이름을 받아서 사용
        this.name = name;
        this.age = 22;
        this.live = true;
 
        System.out.println(name);
        System.out.println(age);
        getLive();
        System.out.println();
    }
 
    void setName(String name) {
        this.name = name;
    } // 이름 정보 변경
 
    String getName() {
        return name;
    } // 이름 정보 반환
 
    void getLive() {
        if (live == true) {
            System.out.println("살았다");
        } else
            System.out.println("죽었다");
    } // 생존 여부 반환
}
 
public class AnimalTest {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
 
        Animal animal = new Animal();
        animal.Animal("큰뿔소");
        animal.Animal("펭귄");
    }
}


[결과]


'2017 > JAVA' 카테고리의 다른 글

주사위 놀이(java.util.Random)  (0) 2017.07.04
기말대비정리  (0) 2017.06.01
INTRO  (0) 2017.03.04

주사위를 던져서 나오는 값을 출력하는 프로그램을 작성하기

- 클래스를 두개 사용하기(클래스 생성&사용 연습)


[조건]

> 주사위를 표현하는 클래스 작성

> 주사위를 던져서 나오는 눈의 값을 반환후 출력

> 주사위가 나오는 값은 무작위 (Java.util.Random사용)

> 이전값과 동일한 값이 나올경우 종료


[무작위값 출력하는 방법]

java.util.Random random = new java.util.Random(); //ra

val = random.nextInt(6); // val값 : 0~5

val += 1; // val값 : 1~6



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
31
32
33
34
35
36
class Die {
 
    int value;
 
    int roll() {
        java.util.Random random = new java.util.Random();
        value = random.nextInt(6);
        value += 1;
 
        return value;
    } // Random한 주사위 값을 반환하는 roll메소드
}
 
public class MyDie {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
 
        Die die = new Die(); // 주사위 클래스 객체 생성
 
        int one = 0// 주사위를 던진 값
 
        while (true) {
            int two = die.roll(); // 그 다음 주사위를 던진 값
            System.out.println(one + " // " + two);
            one = two;
            two = die.roll();
            System.out.println(one + " // " + two);
 
            if (one == two) // 이전에 던진 주사위값과 새로 던진 주사위의 값이 같으면 종료
                break;
        }
    }
}




결과


'2017 > JAVA' 카테고리의 다른 글

Class 이용연습 (Animal Class)  (0) 2017.07.04
기말대비정리  (0) 2017.06.01
INTRO  (0) 2017.03.04

자바의 기본 골격 - 클래스를 잘 만들자.


class MyClass {   // 클래스 이름 


int value;    // 멤버 필드


MyClass {...}        // 생성자

MyClass(int v){...}


void my_func{....}  // 메소드

void my_func(int x){...}


public static void main(String args[]){ // 메인 메소드


}


++++++추가 적으로

static field/method, 상속, 인터페이스, 접근지정자, 패키지



식별자 에 대한 룰

> 이름을 어떻게 정의해야 하는가 

> 자바 키워드 이해하기


자바의 데이터 타입

> 기본타입 8개

  boolean 1

  char 2

  byte 1

  short 2

  int 4

  long 8 

  float 4  -> f,d붙는 것.

  double 8

> 레퍼런스 타입 3개: 객체가 가르키는 주소의 값


상수

> final 키워드를 사용한다.

> class, Method 


타입 변환

> Typed language : 각 변수가 가지는 값들, 타입에 대해 민감한 언어. int에는 int 값만 들어가야한다.

> 더 큰 타입에 작은 타입을 넣을 경우에는 자동 타입변환이 일어 난다. .

> 강제 타입변환시에는 강제적으로 타입을 바꿔줘야한다.


Scanner 사용하는 법.


연산자 우선순위 알아두고, 잘 모르겠다 하면 괄호를 사용하자.

비트연산자 시프트 연산자 그냥 알아보기

조건연산자 등등...조건문, 다중조건문, 스위치문, case문,반복문


배열

> 자바 배열은 선언하는 과정, 생성하는 과정 총 두가지 과정을 꼭 거쳐야한다.

> int intArray[] = {0,1,2,3}

> int intArray[] = new int[]

> Array of points

> 자바 배열은 비정방형 배열이다.

>> int x[5][4]

>> array of pointer

>> 각 행과 열의 개수가 다를 수 있다. 


자바의 예외 처리(Exception)

tr{

//예외 가능성

}

catch (처리할 예외처리){

}

final {

}

> flow 알아두기


클래스 구조

> 객체

> 메소드 형식

> 메소드 오버로딩 (같은 기능 메소드 바꿔서 


this

> this.x 자기자신 >super.x 부모클래스

> this(..)     > super(...) 생성자

> 생성자를 호출할때 가장 처음으로 선언을 해줘야한다.


생성자 룰

> 생성자 선언이 안되어있을 때 자동으로 생성자를 만들어준다. (기본생성자를)


접근 지정자

> 누가 접근을 지정하고 할 수 있을지

> 아무것도 없다.(default)-> 패키지 안에서만 or public -> 패키지 상관없이

> default, private, public, protected(default+상속클래스)


static VS non-static

static F static M

non F non M


S,F S,M <- non N


객체가 만들어지지 않아도 사용 가능하다. 

non 객체 static은 클래스와 연관이 있다고 생각하면 된다. 

차이점에 대해 ppt참고하기


상속

> sub 생성자

>> 부모클래스 생성자(생략가능)

>> 초기화

>> (타입변환) >> 메소드 오버라이딩 


A obj = new A();

A obj = new B();


호출이 가능한지 부모 자식 클래스 내부의 필드사용하는거

실제 호출? 가리키는 객체 부모자식 필드에서 객체생성사용하면 자식으로 간다


인터페이스



패키지

ppt에 있는 사용법


스트림에서 가장 중요한거 7-10 예제 파이프 라이닝    


제너럴 코딩한번씩 해보기

Vector 제네릭 메소드 정의














'2017 > JAVA' 카테고리의 다른 글

Class 이용연습 (Animal Class)  (0) 2017.07.04
주사위 놀이(java.util.Random)  (0) 2017.07.04
INTRO  (0) 2017.03.04

프로그래밍 언어

>기계어 (0,1)

>어셈블리어 (니모닉 기호(mnemonic symbol))

> 고급언어 (C,JAVA) (절차 지향 언어, 객체 지향 언어)


JAVA <플랫폼 독립성이다>

> 제임스 고슬링 (James Gosling)

> 플랫폼 호환성 문제 해결 : C언어같이 플랫폼이 종속되어 있었는데 자바의 JVM(자바가상머신)을 통해 WORA(Write Once Run Anywhere) 실현

단, JAVA언어는 플랫폼 종속적인것이 아니지만 JVM은 플랫폼 종속적이다. 

WORA를 가능하게 하기 위한 특징은 아래와 같다.

> 바이트 코드 (Byte Code)

> JVM (Java Virtual Machine)


바이트 코드

> 플랫폼 종속성이 없이 자바 가상 기계인 JVM에 동작하는 바이너리 코드

> 클래스 파일에 저장

> 컴퓨터 CPU에 의해 직접 실행되지 않는다. (JVM이 인터프리터 방식으로 바이트 코드 해석, 해당 플랫폼에서 실행시킴)


자바 가상 기계

> 각기 다른 플랫폼에서 동일한 자바 실행 환경 제공

> 자바 가상 기계는 플랫폼에 종속적이다.

> 자바 가상 기계가 class(클래스) 파일을 실행한다.


JAVA의 특성

> 객체지향 (클래스 계층구조, 상속성, 다형성, 캡슐화)

> 멀티스레드 

> 소스(.java) 와 클래스(.class) 파일

클래스 파일에는 단 하나 만의 클래스만 존재.

하나의 소스파일에 여러 클래스를 작성 가능 (단, public 클래스는 하나만 가능하다.)

소스 파일의 이름과 public 으로 선언된 클래스 이름은 같아야 한다.






  



'2017 > JAVA' 카테고리의 다른 글

Class 이용연습 (Animal Class)  (0) 2017.07.04
주사위 놀이(java.util.Random)  (0) 2017.07.04
기말대비정리  (0) 2017.06.01

+ Recent posts