20일차 강의 정리


1. Calendar Class

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
42
import java.util.Calendar;
 
public class Ex02 {
    public static void main(String[] args) {
        //캘린더
        Calendar now;
        now = Calendar.getInstance();
        
        int year = now.get(Calendar.YEAR);
        System.out.print(year+"년 ");
        int month = now.get(Calendar.MONTH);
        System.out.print(month+1+"월 ");
        int day = now.get(Calendar.DATE);
        System.out.print(day+"일 ");
 
        int week = now.get(Calendar.DAY_OF_WEEK);
        char[] weeks={'일','월','화','수','목','금','토'};
        System.out.println(weeks[week-1]+"요일");
        
        int ampm = now.get(Calendar.AM_PM);
        if(ampm==0){
            System.out.print("AM ");
        }else{
            System.out.print("PM ");
        }
        int hour = now.get(Calendar.HOUR);
        System.out.print(hour+":");
        int min = now.get(Calendar.MINUTE);
        System.out.print(min+":");
        int sec = now.get(Calendar.SECOND);
        System.out.println(sec);
        
        int hhour = now.get(Calendar.HOUR_OF_DAY);
        System.out.println(hhour+":"+min+":"+sec);
        
        int cntDay = now.get(Calendar.DAY_OF_YEAR);
        System.out.println(cntDay+"일째 입니다.");
        
        now.set(year, month, 4);
 
    }
}
cs

결과


2. Date Class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class Ex03 {
    public static void main(String[] args) {
        //Date
        Date now = new Date();
        System.out.println(now);
        System.out.println(now.toString());
        System.out.println("-------------------------------");
        
        SimpleDateFormat sdf;
        sdf = new SimpleDateFormat("yyyy년 mm월 dd일 hh시 mm분 ss초");
        String kor = sdf.format(now);
        System.out.println(kor);
        System.out.println(now.getMonth());    //월 은 0부터시작해서 이번달이 7월이면 6이 출력
        System.out.println(now.getTime());
 
    }
 
}
cs

결과


3. Random Class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Random;
 
public class Ex04 {
 
    public static void main(String[] args) {
        //Random
        double ran = Math.random();    
        System.out.println(ran);
        
        Random ran2 = new Random();
        System.out.println(ran2.nextInt());        //int자료형의 표현 범위 내에서 난수발생
        System.out.println(ran2.nextLong());    //long자료형의 표현 범위 내에서 난수발생
        System.out.println(ran2.nextDouble());    //= Math.random()
        //0~9난수
        System.out.println(ran2.nextInt(10));     //0<=ran2<인자
        //1~45
        System.out.println(ran2.nextInt(45)+1);
    }
 
}
cs

결과


4. Arrays Class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Arrays;
 
public class Ex05 {
    public static void main(String[] args) {
        //Arrays
        int[] arr1 = {30,45,20,3,1,35};
        Arrays.sort(arr1);        //정렬
        for (int i = 0; i < arr1.length; i++) {
            System.out.print(arr1[i]+" ");
        }
        System.out.println();
 
        int[] arr2 = new int[10];
        Arrays.fill(arr2, 11);
        Arrays.fill(arr2, 3,5,3);         //arr2에서 자리번호 3~5까지 2로 채워넣는다
        for (int i = 0; i < arr2.length; i++) {
            System.out.print(arr2[i]+" ");
        }
    }
}
cs

결과


응용 소스

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
import java.util.Arrays;
 
public class Ex06 {
    public static void main(String[] args) {
        
        int[] lotto = {30,45,20,3,1,35};
        Arrays.sort(lotto);        //정렬
        int idx = Arrays.binarySearch(lotto, 30);
        
        System.out.println("30의 자리위치: "+idx);
        int[] arr2 = Arrays.copyOfRange(lotto, 1,3);    //복사-> 자리번호1에서 3이전까지
        System.out.println(Arrays.toString(arr2));        //복사한것 출력
        
        System.out.println("====================================");
        String[] names={"홍길동","김만수","김철수","고경아"};
        System.out.println(Arrays.toString(names));    //정렬 전
        Arrays.sort(names);        //binarySearch하기위해 필요(정렬)
        int idx2 = Arrays.binarySearch(names, "김만수");
        System.out.println("\'김만수\'의 자리 위치: "+idx2);
        System.out.println(Arrays.toString(names));    //정렬 후
        
        System.out.println("====================================");
        System.out.println("====================================");
//        String[] arr = Arrays.copyOf(names, names.length);    //복사, 몇번까지
        String[] arr = Arrays.copyOfRange(names, 1,3);        //복사 자리번호1에서 3전까지
        names[1]="바꿈";
        System.out.println(Arrays.toString(arr));
        System.out.println(Arrays.toString(names));
 
    }
}
cs

결과


'* Programming > JAVA' 카테고리의 다른 글

DAY21 컬렉션 프레임워크  (0) 2016.08.03
DAY21 싱글톤 패턴  (0) 2016.08.02
DAY20 Object클래스,리플렉션  (0) 2016.08.02
DAY20 this/super  (0) 2016.08.02
DAY19 익명클래스  (0) 2016.08.02

Lotto를 객체지향적으로 작성하기


Lotto 소스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Lotto {
    //객체 지향적 소스
    public static void main(String[] args) {
 
        Ball[] box = new Ball[45];
        String[] colorName={"검정","파랑","노랑","빨강","초록"};
        
        for(int i=0;i<45;i++){    // 공 객체 만들어 박스에 담기
            box[i]= new Ball(i+1,colorName[i/10]);    //Ball 생성자
        }
 
        int cnt=0;
        while(cnt<5){
            int idx = (int)(Math.random()*45);    //0~44
            if(box[idx].mark){        //중복을 피하기위한 조건문
                box[idx].show();    //출력
                box[idx].setMark();    //한번출력됬으니 체크
                cnt++;
            }
        }//while end 
    }//main end
}//class end
cs

Ball 소스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Ball {
    public int num;            //숫자
    public String color;    //공의 색
    public boolean mark;    //중복여부 확인
    
    public Ball(int num,String color){        //생성자
        this.num=num;
        this.color=color;
        mark = true;
        System.out.println("공하나를 번호("+num+")를 부여하고");
        System.out.println(color+"색 을 칠하여 박스에 넣는다");
    }
    
    public void show(){        //출력
        System.out.println(num+" : "+color);
    }
    public void setMark(){    //중복되지않도록 체크
        mark= !(mark);
    }
}//class end
cs


결과

......생략


'* Programming > JAVA' 카테고리의 다른 글

DAY15 Wrapper class  (0) 2016.07.25
DAY15 String " "기준으로 불러오기  (0) 2016.07.25
DAY14 StringBuffer  (0) 2016.07.21
DAY13 주민등록번호로 신분확인  (0) 2016.07.21
DAY13 String 2  (0) 2016.07.21

10일차 강의 정리


DAY8, DAY9, DAY10 은 클래스의 구성요소에 대해 다룬다

1. Car class

소스1

public class Ex01 {

public static void main(String[] args) {

Car myCar = new Car();        //myCar 클래스 선언

System.out.println(myCar.model);

System.out.println(myCar.color);

myCar.run();

myCar.stop();

myCar.run();

myCar.color="파랑"; //myCar 색상 변경

System.out.println(myCar.color+"색"+myCar.model+"인 내차를 타고");

myCar.run();

System.out.println();

Car yourCar = new Car();        //yourCar 클래스 선언

System.out.println(yourCar.color+"색"+yourCar.model+"인 옆사람 차");


}//main end

}//Ex02 class end


class Car{ //Car class

String model = "모닝";

String color = "빨강";

public void run(){ //달린다

System.out.println("달린다");

}

public void stop(){ //멈춘다

System.out.println("멈춘다");

}

}//Car class end

결과1

소스2

public class Ex02 {

public static void main(String[] args) {

motocycle my = new motocycle();

int speed = 0;

speed = my.speedUp(speed, 20);    //속도업

speed = my.speedUp(speed, 30);

speed = my.speedUp(speed, 10);

my.speedView(speed);

speed = my.speedDown(speed,20);    //속도다운

speed = my.speedDown(speed,10);

speed = my.speedDown(speed,10);

my.speedView(speed);

}//main end

}//class end


class motocycle{

public void speedView(int speed){

System.out.println("현재속도:"+speed+"km");

}

public int speedUp(int a,int b){ //스피드 업

if(a+b<=80){

return a+b;

}else{

return 80; //최대속도 제한

}

}

public int speedDown(int a,int b){ //스피드 다운

if(a-b>=0){

return a-b;

}else{

return 0; //정지시 속도는 0

}

}

}//class end

결과2

소스3

public class Ex03 {

static String model = "텍트";

int speed;

int minSpeed;

int maxSpeed=80;

public static void main(String[] args) {

Ex03 me = new Ex03(); //객체 생성

me.speedUp(20);

me.speedUp(20);

prn(me);

me.speedUp(20);

prn(me);

me.speedUp(20);

prn(me);

me.speedUp(20);

prn(me);

me.speedUp(20);

prn(me);

me.speedUp(20);

me.speedUp(20);

prn(me);

me.speedDown(20);

prn(me);

}//main end

public static void prn(Ex03 me){ //(String st)과 같은 개념, String 또한 클래스 이다

System.out.println(model+"의 현재속도는 "+me.speed+"km");

}

public void speedUp(int speed1){

if(speed+speed1<=maxSpeed){

speed += speed1;

}else{

speed = maxSpeed;

}

}//speedUp end

public void speedDown(int speed1){

if(speed-speed1>=0){

speed -= speed1;

}else{

speed =0;

}

}//speedDown end

}//class end

결과3

2. 생성자 -객체 생성 관여

객체 생성시 단한번 수행

생성자 없이는 객체 생성이 불가

필드의 초기화가 주 이다

소스

public class Ex01 {

public static int num1; //static 을 사용하는 순간 ,값을 유지하며 공유하게된다

public int num2;        //초기화 하지않아도 defualt값 0으로 초기화


public Ex01(){ //생성자

System.out.println("객체 생성");

}

public static void main(String[] args) {

//생성자 호출 . 객체의 주소를 me에 저장 //객체를 생성하면서 생성자 안의 print문을 출력

Ex01 me = new Ex01();     

me.func1();

me.func2();

me.func1();

me.func3();

me.func1();

System.out.println("---------------");

Ex01 me2 = new Ex01();     //다시 객체를 생성하지만 static 변수인 num1은 갑을 유지하기 때문에 1이다

me2.func1();

me2.func2();

me2.func1();

me2.func3();

me2.func1();

}//main end

public void func1(){        //결과출력

System.out.println("num1:"+num1+", num2:"+num2);

}

public void func2(){        //num1 +1

num1++;

}

public void func3(){        //num1의 수를 num2에 대입

num2=num1;

}

}//class end

결과

소스2

인자값을 받는 생성자

public class Ex02 {

String name = "모닝";

int speed;

int maxSpeed;

int minSpeed;

public Ex02(){ //기본 생성자

speed=0;

maxSpeed=80;

minSpeed=0;

}

public Ex02(String st){ //인자 값을 받는 생성자

name = st;

maxSpeed=80;

minSpeed=0;

}

public Ex02(String st, int a){

name =st;

maxSpeed=a;

minSpeed=0;

}

public static void main(String[] args) {

Ex02 me = new Ex02(); //내 객체 생성

me.speedUp(10);

System.out.println("내차 "+me.name+"의 속도는 "+me.speed+"km");

me.speedUp(30);

System.out.println("내차 "+me.name+"의 속도는 "+me.speed+"km");

me.speedDown(20);

System.out.println("내차 "+me.name+"의 속도는 "+me.speed+"km");

System.out.println("-------------------------------");

Ex02 you = new Ex02(); //너 객체 생성

you.name="스파크";

you.speedUp(50);

System.out.println("너차 "+you.name+"의 속도는 "+you.speed+"km");

you.speedDown(80);

System.out.println("내차 "+you.name+"의 속도는 "+you.speed+"km");

System.out.println("-------------------------------");

Ex02 that = new Ex02("올란도",250); //옆반 객체 생성 //해당 인자값이 있는 생성자로

that.speedUp(40);

that.speedUp(40);

that.speedUp(40);

that.speedUp(40);

that.speedUp(40);

that.speedUp(70);

System.out.println("옆반차 "+that.name+"의 속도는 "+that.speed+"km");

}//main end

public void speedUp(int a){        //스피드 업

if(speed+a<=maxSpeed){

speed += a;

}else { speed=maxSpeed; }

}

public void speedDown(int a){    //스피드 다운

if(speed-a>=0){

speed -= a;

}else { speed=minSpeed; }

}

}//class end

인자값을 받는 생성자를 사용할 경우

기본생성자 또한 반드시 작성해야한다

원래는 생성자는 자동 생성해주지만 이경우에는 자동으로 생성해주지 않는다

결과2

소스

Scanner 간단하게 사용하기

public class Ex03 {

Scanner sc;


public  Ex03(Scanner sc2){ //생성자

sc = sc2;

}

public static void main(String[] args) {

System.out.println("main start");

System.out.print("입력 : ");


Scanner sc = new Scanner(System.in); //모든 결정권이 main 에 있다

Ex03 me = new Ex03(sc);

System.out.println("main>>>"+sc.nextLine()); //입력 받으며 출력

me.func1(); //func1 호출

}//main end

public void func1(){

System.out.println("func1");

System.out.print("입력 : ");

String temp=sc.nextLine(); //func1입력

System.out.println("func1>>>"+temp);

func2();

}

public void func2(){

System.out.println("func2");

System.out.print("입력 : ");

System.out.println("func2>>>"+sc.nextLine()); //func2입력 받으며 출력

}

}//class end

결과


'* Programming > JAVA' 카테고리의 다른 글

DAY11 class 정리/상수화  (0) 2016.07.18
DAY10 업다운 게임  (0) 2016.07.18
DAY9 멤버필드  (0) 2016.07.15
Apache Ant  (0) 2016.07.13
DAY8 클래스 메소드  (0) 2016.07.13

+ Recent posts