서노썬
sun noes sun
서노썬
전체 방문자
오늘
어제
  • 카테고리 (142)
    • Java (89)
      • Day1 (20)
      • Day2 (16)
      • Day3 (4)
      • Day4 (5)
      • Day5 (2)
      • Day6 (2)
      • Day7 (4)
      • Day8 (6)
      • Day9 (3)
      • Day10 (0)
      • Day11 (0)
      • Day12 (0)
      • Day13 (3)
      • Day14 (0)
      • Day15 (0)
      • Day16 (0)
      • Day19 (0)
      • Day20 (0)
      • Day21 (2)
      • Day22 (4)
      • Day23 (2)
      • Day24 (5)
      • Day25 (4)
      • Day27 (2)
      • Day28 (3)
      • Day29 (1)
      • Day30 (1)
      • Day31 (0)
      • Day32 (0)
      • Dat33 (0)
      • Day34 (0)
      • Day35 (0)
      • Day36 (0)
    • HTML (37)
      • Day36 (20)
      • Day37 (3)
      • Day38 (2)
      • Day39 (8)
      • Day40 (3)
    • SQL (4)
      • Day40 (4)
      • Day41 (0)
      • Day42 (0)
      • Day43 (0)
      • Day44 (0)
      • Day45 (0)
    • JSP (0)
      • Day46 (0)
      • Day75 (0)
    • PYTHON (0)
      • Day75 (0)
      • Day76 (0)
    • Photo (12)

블로그 메뉴

  • 홈
  • 방명록

인기 글

최근 글

태그

  • 자바continue
  • 자바연산자
  • 자바자료형
  • java자료형
  • java데이터타입
  • 자바
  • Java
  • 논리연산자
  • 자바break
  • java메뉴입력

티스토리

hELLO · Designed By 정상우.
서노썬

sun noes sun

Java/Day5

[Java] class 클래스 (삼각형 클래스 & 원 클래스 & 사과장수 클래스)

2021. 11. 5. 00:10

1. class 클래스

 

- 생성자명과 클래스명은 동일하게 준다.

 

 

2. 삼각형 클래스

 

(1) 문제

 

① 삼각형 클래스 만들기.
- 멤버 변수(인스턴스 변수) : 밑변, 높이, 넓이
- 멤버 메소드(인스턴스 메소드) : 삼각형 초기화 하는 메소드, 삼각형의 면적 구하는 메소드, 삼각형의 현재 상태 출력하는 메소드(밑변, 높이, 넓이 출력)

② 삼각형 인스턴스 3개 만들기
- 밑변 10, 높이 5
- 밑변 4, 높이 2
- 밑변 20 높이 10


③ ②에서 만든 삼각형 인스턴스들의 상태값 출력하기(밑변, 높이, 면적)

 

 

(2)

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
class Triangle
{
    int width;
    int height;
    int area;
 
    public void reset(int width, int height)
    {
        this.width = width;
        this.height = height;
    }
    public void area()
    {
        area = width * height / 2;
    }
    public void printCS()
    {
        System.out.println("밑변 : " + width);
        System.out.println("높이 : " + height);
        System.out.println("넓이 : " + area);
    }
}
class TriangleMain
{
    public static void main(String[] args)
    {
        Triangle t1 = new Triangle();
        t1.reset(10, 5);
        t1.area();
        t1.printCS();
        System.out.println("==============");
 
        Triangle t2 = new Triangle();
        t2.reset(4, 2);
        t2.area();
        t2.printCS();
        System.out.println("==============");
 
        Triangle t3 = new Triangle();
        t3.reset(20, 10);
        t3.area();
        t3.printCS();
    }
}
Colored by Color Scripter
cs

 

- 출력값

밑변 : 10
높이 : 5
넓이 : 25
==============
밑변 : 4
높이 : 2
넓이 : 4
==============
밑변 : 20
높이 : 10
넓이 : 100

 

 

3. 원 클래스

 

(1) 문제

 

① 원 클래스 만들기

- 멤버 변수(인스턴스 변수) : 반지름 r , 면적 πr² , 둘레 2πr , 파이 π 3.14
- 멤버 메소드(인스턴스 메소드) : 원 초기화 하는 메소드, 원의 둘레 구하는 메소드, 원의 면적 구하는 메소드, 원의 상태를 출력하는 메소드(반지름, 둘레, 면적)

② 원 인스턴스 3개 만들기

- 반지름 5
- 반지름 10
- 반지름 30


③ ②에서 만든 원 인스턴스들의 상태값 출력하기

 

 

(2)

 

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
class Circle
{
    int radius;
    double perimeter;
    double area;
    double pi;
 
    public void reset(int radius)
    {
        this.radius = radius;
        this.pi = 3.14;
    }
    public void perimeter()
    {
        this.perimeter = 2 * pi * radius;
    }
    public void area()
    {
        this.area = pi * radius * radius;
    }
    public void printCS()
    {
        System.out.println("반지름 : " + radius);
        System.out.println("둘레 : " + perimeter);
        System.out.println("넙이 : " + area);
    }
}
class CircleMain
{
    public static void main(String[] args)
    {
        Circle c1 = new Circle();
        c1.reset(5);
        c1.perimeter();
        c1.area();
        c1.printCS();
        System.out.println("==========================");
 
        Circle c2 = new Circle();
        c2.reset(10);
        c2.perimeter();
        c2.area();
        c2.printCS();
        System.out.println("==========================");
 
        Circle c3 = new Circle();
        c3.reset(30);
        c3.perimeter();
        c3.area();
        c3.printCS();
    }
}
Colored by Color Scripter
cs

 

- 출력값

반지름 : 5
둘레 : 31.400000000000002
넙이 : 78.5
==========================
반지름 : 10
둘레 : 62.800000000000004
넙이 : 314.0
==========================
반지름 : 30
둘레 : 188.4
넙이 : 2826.0

 

 

4. 과일장수 클래스

 

(1) 문제

 

① 사과장수 클래스

- 인스턴스 변수 : 사과값, 사과개수, 가지고 있는 돈
- 메소드 : 인스턴스 변수를 초기화 한다, 구매자에게 돈을 받으면 사과를 건네준다, 현재 자신의 상태를 출력.

② 구매자 클래스
- 인스턴스 변수 : 사과개수, 가지고 있는 돈
- 메소드 : 인스턴스 변수를 초기화 한다, 과일장수에게 돈을 주고 사과를 받는다, 현재 자신의 상태를 출력.

③ 과일메인 클래스
- 사과장수 두명을 만든다.
- 한 명은 사과하나의 값은 2000 원이고 사과를 50 개 들고 있고  그리고 가진돈은 50000원이다.
- 또 다른 사과장수는 사과하나의 값은 1000원이고 사과를 100개를 들고 있고  그리고 가진돈은 100000원이다.

④ 상황

- 구매자는 20000원의 돈을 가지고 있으며 처음에는 사과가 하나도 없다.
- 구매자는 2000원짜리 사과 3개와 1000원짜리 사과 5개를 구매한다.
- 우선은 정확히 자신이 사고싶은 만큼의 돈을 넘겨주고 거스름 돈은 없는 걸로 한다.
- 구매자가 사과 구매후 3명(과일장수, 구매자)의 상태를 출력한다.

 

 

(2)

 

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
class Seller
{
    int PRICE;
    int numOfApples;
    int money;
 
    public void resetSeller(int price, int numOfApples, int money)
    {
        this.PRICE = price;
        this.numOfApples = numOfApples;
        this.money = money;
    }
    public int sell(int money)
    {
        this.money+=money;
        int num = money / PRICE;
        this.numOfApples -= num;
        return num;
    }
    public void printCS()
    {
        System.out.println("사과 가격 : " + PRICE);
        System.out.println("사과 갯수 : " + numOfApples);
        System.out.println("가진 돈 : " + money);
    }
}
class Buyer
{
    int money;
    int numOfApples;
 
    public void resetBuyer(int money)
    {
        this.money = money;
        this.numOfApples = 0;
    }
    public void buy(Seller seller, int money)
    {
        this.money -= money;
        this.numOfApples += seller.sell(money);
    }
    public void printCS()
    {
        System.out.println("사과 갯수 : " + numOfApples);
        System.out.println("가진 돈 : " + money);
    }
}
class Main
{
    public static void main(String[] args)
    {
        Seller seller1 = new Seller();
        seller1.resetSeller(2000, 50, 50000);
    
        Seller seller2 = new Seller();
        seller2.resetSeller(1000, 100, 100000);
 
        Buyer buyer = new Buyer();
        buyer.resetBuyer(20000);
 
        buyer.buy(seller1, 6000);
        System.out.println("사과장수1");
        seller1.printCS();
        System.out.println();
        System.out.println("사과장수2");
        seller2.printCS();
        System.out.println();
        System.out.println("구매자");
        buyer.printCS();
 
        System.out.println("=================");
 
        buyer.buy(seller2, 5000);
        System.out.println("사과장수1");
        seller1.printCS();
        System.out.println();
        System.out.println("사과장수2");
        seller2.printCS();
        System.out.println();
        System.out.println("구매자");
        buyer.printCS();
    }
}
 
 
        
Colored by Color Scripter
cs

 

- 출력값

사과장수1
사과 가격 : 2000
사과 갯수 : 47
가진 돈 : 56000

사과장수2
사과 가격 : 1000
사과 갯수 : 100
가진 돈 : 100000

구매자
사과 갯수 : 3
가진 돈 : 14000
=================
사과장수1
사과 가격 : 2000
사과 갯수 : 47
가진 돈 : 56000

사과장수2
사과 가격 : 1000
사과 갯수 : 95
가진 돈 : 105000

구매자
사과 갯수 : 8
가진 돈 : 9000

'Java > Day5' 카테고리의 다른 글

[Java] 재귀메소드  (0) 2021.11.04
    'Java/Day5' 카테고리의 다른 글
    • [Java] 재귀메소드

    티스토리툴바