본문 바로가기

Learning/JAVA

메인함수 클래스를 분리, 출력문 불러오기

  • 10개의 수를 입력받아 배열에 넣고 그 배열의 합계와 가장 작은 수 구하기 (Exam01)
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
package day04;
import java.util.Scanner;
public class Exam01 {
    public static void main(String[] args) {
        //10개의 수를 입력받아 배열에 넣고
        //그 배열의 합계와 가장 작은 수 구하기
        
        Scanner sc=new Scanner(System.in);
        System.out.println("10개의 양수 입력>>");
        
        int []arr=new int[10];
        
        int sum=0;
        
        for(int i=0;i<10;i++) {
            arr[i]=sc.nextInt();
            sum+=arr[i];
        }
        System.out.println("합계: "+sum);
        
        int min=arr[0];
        for(int i=0;i<10;i++) {
            if(min>arr[i]) {
                min=arr[i];
            }
        }
        System.out.println("최소값: "+min);
        
        for(int a:arr) {
            System.out.print(a+"\t");
        }
        System.out.println();
    }
}

 

 

  • 난수를 배열에 입력하되 들어갈 위치를 랜덤하게 정하고 1부터 100이하의 수를 넣으시오. 단, 값이 이미 들어가 있으면 넣지 않는다. (Exam02)
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
package day04;
public class Exam02 {
    public static void main(String[] args) {
        //난수를 배열에 입력하되
        //들어갈 위치를 랜덤하게 정하고
        //1부터 100이하의 수를 넣으시오
        //단, 값이 이미 들어가 있으면 넣지 않는다.
        
        int []arr=new int[5]; //0 0 0 0 0
        int n=0;
        while(n<arr.length){ //배열의 길이 만큼 반복한다.
            int col=(int)(Math.random()*5); //배열위치를 랜덤하게 정한다.
            if(arr[col]!=0) { //이 위치에는 이미 값이 들어갔음. 그럼 다시 while문을 돌아서 "배열의 위치"를 정한다.
                continue;
            }else { //배열에 들어간 값이 0이라면 (=값이 없다면) 1에서 100이하의 난수를 발생.
                arr[col]=(int)(Math.random()*100)+1//1에서 100이하이므로 0이 나왔을때 1을 더해주는 것.
                n++;
            }
        }
        
        for(int i=0;i<arr.length;i++) {
            System.out.print(arr[i]+"\t");
        }
        
        
    }
}
cs

 

 

  • Student 클래스를 선언하고 속성과 행위 표현 (멤버변수, 메소드) (Student)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package day04;
public class Student { //클래스를 선언. 속성과 행위를 표현할 수 있고, 속성은 멤버변수, 행위는 메소드.
    int StudentID; //학번
    String name; //이름
    int grade; //학년
    String address; //주소
    
    //공부하다 라는 행위를 표현하고 싶다. 그 행위를 프로그램에서는 함수라고 함. 객체지향의 함수는 메소드.
    public void study() { //함수는 반드시 괄호가 있음
        System.out.println(name+"공부하다");
    }
    
    public void play() {
        System.out.println(name+"운동하다");
    }
    public static void main(String[] args) { //실행은 항상 main함수 부터
        Student s1=new Student(); //Student 클래스 안에 s1이라는 객체 생성
        s1.StudentID=100//누구의 학번인지 표현해야하므로 점(.)을 찍는게 중요.
        s1.name="홍길동";
        s1.grade=1;
        s1.address="부산";
        System.out.println("s1의 이름: "+s1.name);
        
        Student s2=new Student();
        s2.StudentID=200;
        s2.name="이순신";
        s2.grade=4;
        s2.address="서울";
        System.out.println("s2의 이름: "+s2.name);
        
        System.out.println(s1.name+"의 주소: "+s1.address);
        
        //이름이 강감찬이고 3학년, 인천에 사는 학생 s3을
        //생성하고 s3의 이름과 주소를 출력하시오.
        Student s3=new Student();
        s3.name="강감찬";
        s3.grade=3;
        s3.address="인천";
        System.out.println("s3 이름: "+s3.name);
        System.out.println("s3 주소: "+s3.address);
        
        //홍길동이 공부하다
        s1.study();
        //강감찬이 공부하다
        s3.study();
        
        //학생이라는 클래스를 만들때 학번, 이름, 학년, 주소를 만들었고
        //공부하다라는 행위까지 표현.
        
        //학생이라는 클래스를 수정하는데 play()함수를 가지고 있고..
        //여기에서 이름 운동한다라는 값을 출력하시오
        s1.play();
 
        
    }
}
cs

 

 

  • Baby 클래스를 선언하고 속성값에 이름과 나이. 웃는다와 운다 행위 표현. (Baby)
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
package day04;
public class Baby { //클래스는 보통 대문자로 시작하게끔 표현
    String name;
    int age;
    
    //웃는다
    //운다
    public void smile() {
        System.out.println(name+"이 웃는다.");
    }
    
    public void cry() {
        System.out.println(name+"이 운다.");
    }
    public static void main(String[] args) {
        //Baby 객체 b1을 만들고
        //이름 베이비1 나이 2
        //베이비1 이 웃는다
        Baby b1=new Baby();
        b1.name="베이비1";
        b1.age=2;
        b1.smile();
        
        //Baby 객체 b2을 만들고
        //이름 베이비2 나이 1
        //베이비2 이 운다
        Baby b2=new Baby();
        b2.name="베이비2";
        b2.age=1;
        b2.cry();
        
    }
}

 

 

  • 사칙연산하는 클래스 만들고 매개변수를 할당받아 사칙연산하기 (Sachik)
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
package day04;
public class Sachik {
    //덧셈
    public void sum(int a, int b) {
        System.out.println("덧셈: "+(a+b));
    }
    //뺄셈
    public void sub(int a, int b) {
        System.out.println("뺄셈: "+(a-b));
    }
    //곱셈
    public void mul(int a, int b) {
        System.out.println("곱셈: "+(a*b));
    }
    //나눗셈
    public void div(int a, int b) {
        System.out.println("나눗셈: "+(a/b));
    }
    
    public static void main(String[] args) {
        Sachik s1=new Sachik();
        s1.sum(10,5); //함수를 부를때 값을 전달할 매개변수. 5번으로 가서 각각 순서대로 정수형 변수 a,b에 전달됨.
        s1.sub(20,10);
        s1.mul(3,5);
        s1.div(9,3);
        
        
    }
}

 

 

  • 사칙연산하는 클래스 만들고 매개변수를 할당받아 사칙연산하기-리턴값을 주고 메인함수에서 나눗셈의 값 출력 (Sachik)
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
package day04;
public class Sachik {
    //덧셈
    public void sum(int a, int b) {
        System.out.println("덧셈: "+(a+b));
    }
    //뺄셈
    public void sub(int a, int b) {
        System.out.println("뺄셈: "+(a-b));
    }
    //곱셈
    public void mul(int a, int b) {
        System.out.println("곱셈: "+(a*b));
    }
    //나눗셈
    public int div(int a, int b) { //void는 리턴값이 없다는 뜻. 리턴이 있으므로 그 자료형을 void대신에 적어준다.
        //System.out.println("나눗셈: "+(a/b));
        return a/b; //return은 값을 돌려준다는 것.
    }
    
    public static void main(String[] args) {
        Sachik s1=new Sachik();
        s1.sum(10,5); //함수를 부를때 값을 전달할 매개변수. 5번으로 가서 각각 순서대로 정수형 변수 a,b에 전달됨.
        s1.sub(20,10);
        s1.mul(3,5);
        //s1.div(9,3);
        System.out.println(s1.div(20,5));
    }
}

 

 

  • Bank클래스 만들고 입금, 출금, 잔액확인 메소드를 만들기. 객체 b1생성하고 이름을 홍길동이라 하기. 입금, 출금하고 잔액확인 (Bank)
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
package day04;
public class Bank {
    String name; //이름 멤버변수 (전역변수)
    int money; //잔액
    
    //입금. 잔액에다가 입금한 만큼의 돈을 더하는 것.
    public void inputMoney(int don) { //don은 지역변수
        money+=don;
    }
    //출금
    public void outputMoney(int don) {
        money-=don;
    }
    //잔액확인
    public void getMoney() {
        System.out.println(name+" 님의 잔액은 "+money+"원 입니다.");
    }
    
    public static void main(String[]args) {
        //Bank 객체 b1을 만들고
        //b1의 이름은 홍길동
        //홍길동이 5000원을 입금하고 잔액을 확인함
        //홍길동님의 잔액은 5000원입니다.
        Bank b1=new Bank();
        b1.name="홍길동";
 
         b1.inputMoney(5000);
        b1.getMoney();
        
        //홍길동이 3000원을 출금하고 잔액확인
        //홍길동님의 잔액은 2000원 입니다.
        b1.outputMoney(3000);
        b1.getMoney();
   }
}