HRD_훈련/JAVA
[JAVA] 클래스 실습 (12일차)
리드미.
2023. 5. 30. 19:13
728x90
반응형
<오늘의 학습 - 클래스를 만들어 접근해 보자>
1. 원의 반지름 구하기
2. 계산기 만들기
3. 사각형 면적 구하기
4. 필드의 사용
5. 객체의 생성자와 오버로딩 이용
6. 객체 배열
7. 심화 문제 풀이
1. 원의 반지름을 구하는 클래스 만들기
▶ Circle 코드
public class Circle {
int radius; // 원의 반지름 필드
String name; // 원의 이름 필드
//생성자
public Circle() {}
// 원의 면적을 계산하는 메소드
public double getArea() {
return 3.14 * radius * radius;
}
}
▶ main 코드
Circle pizza = new Circle(); // Circle 객체 pizza 생성
pizza.radius = 10; //피자의 반지름을 10으로 설정
pizza.name = "자바피자"; //피자의 이름
double area = pizza.getArea(); //피자의 면적 리턴
System.out.println(pizza.name + "의 면적:" + area);
Circle donut = new Circle(); //Circle 객체 donut 생성
donut.radius = 2; //도넛의 반지름을 2로 설정
donut.name = "자바도넛"; //도넛의 이름
area = donut.getArea(); //도넛의 면적 리턴
System.out.println(donut.name + "의 면적:" + area);
▶ 출력 결과
자바피자의 면적:314.0
자바도넛의 면적:12.56
2. 계산기 만들기
▶ Calculator 코드
public class Calculator {
//최솟값
int min(int a, int b){
return (a>b)?b:a;
}
int min(int a, int b, int c){
int min = (a>b)?b:a;
return (min>c)?c:min;
//return (min(a,b)>=c)? c : min(a,b);
}
//절댓값
int abs(int num){
return (num < 0)? -num : num;
}
//배열의 평균값
double avg(int[] arr){
int sum=0;
for(int num : arr){
sum += num;
}
return (double)sum/arr.length;
}
//배열의 최댓값
int max(int[] arr){
for(int num : arr){
max = Math.max(max,num);
}
return max;
}
//값이 바뀌는지 확인
void test1(int a){
a=a+1;
}
void test2(int[] arr){
arr[0]=100;
}
}
▶ 최솟값 출력
Calculator clac = new Calculator();
//최솟값
int min = clac.min(8, 10);
System.out.println("8,10 중 최솟값:"+min);
min = clac.min(8, 5, 6);
System.out.println("8,5,6 중 최솟값:"+min);
8,10 중 최솟값:8
8,5,6 중 최솟값:5
▶ 절댓값 출력
int num = clac.abs(-2);
System.out.println("-2의 절댓값:"+num);
-2의 절댓값:2
▶ 배열 출력
int arr[]={3,5,2,1,8};
int max = clac.max(arr);
System.out.println("배열의 최댓값:"+max);
double avg=clac.avg(arr);
System.out.println("배열의 평균값:"+avg);
배열의 최댓값:8
배열의 평균값:3.8
▶ 클래스에서 변수와 배열의 값을 변경하고 반환하지 않았을 때의 값 비교
int a=1;
System.out.println("test1 호출 전 변수 값:"+a);
clac.test1(a);
System.out.println("test1 호출 후 변수 값:"+a); //값 안 바뀜
System.out.println(); //줄 바꿈
System.out.println("test2 호출 전 배열 값:"+arr[0]);
clac.test2(arr);
System.out.println("test2 호출 전 배열 값:"+arr[0]); //값이 100으로 바뀜
test1 호출 전 변수 값:1
test1 호출 후 변수 값:1
test2 호출 전 배열 값:3
test2 호출 전 배열 값:100
- 변수는 호출만 했을 때는 값이 바뀌지 않는다. 하지만 배열은 호출하여 값을 바꾸면 그대로 값이 바뀐다.
3. 사각형 면적 구하기
▶ Rectangle 코드
public class Rectangle {
int width; //너비
int height; //높이
//접근자. 너비와 높이를 이용해 면적을 리턴
public int getArea(){
return width*height;
}
}
▶ main 코드
Rectangle rectangle = new Rectangle();
Scanner scan = new Scanner(System.in);
//사각형의 너비와 높이를 직접 입력
System.out.println("<사각형의 넓이 구하기>");
System.out.print("너비의 길이를 입력하세요:");
rectangle.width = scan.nextInt();
System.out.print("높이의 길이를 입력하세요:");
rectangle.height = scan.nextInt();
System.out.println(); //줄바꿈
//사각형의 면적을 계산하여 출력
System.out.printf("사각형의 면적:%d\n", rectangle.getArea());
scan.close();
▶ 출력 결과
<사각형의 넓이 구하기>
너비의 길이를 입력하세요:5
높이의 길이를 입력하세요:10
사각형의 면적:50
4. 필드의 사용
▶ main 코드
int iNum1, iNum2;
double dNum;
//합을 구하는 메소드
double sum(){
return iNum1+iNum2+dNum;
}
public static void main(String[] args) {
Practice threeSum = new Practice();
Scanner scan = new Scanner(System.in);
//숫자 입력
System.out.println("<세 개의 숫자의 합 구하기>");
System.out.print("첫 번째 숫자를 입력하세요(정수):");
threeSum.iNum1 = scan.nextInt();
System.out.print("두 번째 숫자를 입력하세요(정수):");
threeSum.iNum2 = scan.nextInt();
System.out.print("세 번째 숫자를 입력하세요(실수):");
threeSum.dNum = scan.nextDouble();
System.out.println(); //줄바꿈
//합 출력
System.out.println("입력한 숫자의 합:"+threeSum.sum());
}//main_end
▶ 출력 결과
<세 개의 숫자의 합 구하기>
첫 번째 숫자를 입력하세요(정수):11
두 번째 숫자를 입력하세요(정수):22
세 번째 숫자를 입력하세요(실수):3.3
입력한 숫자의 합:36.3
5. 객체의 생성자와 오버로딩
▶ Circle 코드
public class Circle {
int radius;
String name;
Circle(){
System.out.println("기본 생성자 호출");
}
Circle(int r, String name){
System.out.println("매개변수 생성자 호출");
radius=r; //매개변수를 받아와 radius에 값을 넣는다. radius=r보다는 this.radius=radius 으로 작성하는 방법을 추천한다.
this.name=name; //this를 사용하면 Circle 안의 radius를 뜻한다.
}
}
▶ main 코드
Circle c = new Circle();
c = new Circle(5,"Jo");
System.out.printf("radius:%d\nname:%s",c.radius,c.name);
▶ 출력 결과
기본 생성자 호출
매개변수 생성자 호출
radius:5
name:Jo
6. 객체 배열
▶ Circle 코드
public class Circle {
int num;
Circle(int num){
this.num=num;
}
}
▶ main 코드
Circle[] cArray = new Circle[5]; //5개의 공간을 가짐
for(int i=0;i<cArray.length;i++){
cArray[i]= new Circle(i); //i 값으로 초기화
System.out.println(cArray[i].radius);
}
▶ 출력 결과
0
1
2
3
4
7. 심화 문제 풀이
[JAVA] 심화 문제 풀이
deliciouscode.tistory.com
2023년 5월 30일 화요일
<12일차 수업 후기>
동일한 패키지에 클래스를 생성하고, 객체를 생성하여 접근하는 실습을 했다. 예전에 애플리케이션을 만들 때 여러 개의 클래스를 만들고 접근했던 기억이 나서 재미있는 수업이었다.
728x90
반응형