package day_2024_07_16;
class Circle1 {
int radius;
void setRadius(int r) {
radius = r;
}
int getRadius() {
return radius;
}
double getArea() {
return radius * radius * Math.PI;
}
void addCircle(Circle1 circle1, Circle1 circle2) {
System.out.println("두 원의 합은 " + (circle1.getArea() + circle2.getArea()));
}
double mulCircle(Circle1 circle1, int mul) {
return circle1.getArea() * mul;
}
double absCircle(Circle1 circle1, Circle1 circle2) {
double abs = circle1.getArea() - circle2.getArea();
if (abs < 0) {
abs *= -1;
}
return (abs >= 0) ? abs : (-1 * abs);
}
}
public class Test16 {
public static void main(String[] args) {
// 참조변수의 매개변수 선언 문제 - 원 넓이
Circle1 circle1 = new Circle1();
circle1.setRadius(10);
System.out.println(circle1.getArea());
Circle1 circle2 = new Circle1();
circle2.setRadius(10);
System.out.println(circle2.getArea());
circle1.addCircle(circle1, circle2); // 두 원의 넓이의 합 : 628.30~
System.out.println(circle1.mulCircle(circle1, 2));
System.out.println(circle1.mulCircle(circle2, 3));
System.out.println(circle1.absCircle(circle1, circle2)); // 두 개의 차를 절대값
}
}
변수의 스코프란 임의 변수에 대한 '변수 접근 가능 영역' 또는 '변수가 소멸되지 않고 존재할 수 있는 영역'을 의미합니다.
중괄호{}로 특정 영역을 감싸면, 그 영역은 변수에 관한 별도의 스코프를 형성하게 됩니다.
중괄호 안에서 선언된 특정 영역에서만 접근 가능한 변수를 지역변수라 합니다.
지역변수의 특징
중괄호 영역 내에서만 접근이 가능합니다.
중괄호 영역을 빠져나가는 순간에 소멸되어 접근이 불가능합니다.
여기서 소멸이 갖는 의미는 단순히 접근만 불가능해지는 것이 아니라 메모리상에서도 삭제가 된다는 것을 말합니다.
이때 매개변수는 중괄호 밖에서 선언되지만, 지역변수의 특징을 갖습니다.
또한 for문 안에서 선언된 변수도 지역변수의 특징을 갖습니다
클래스내에 선언된 변수입니다.
인스턴스 변수의 특징
클래스 이름 (Class Name): 클래스의 이름은 클래스를 식별하는 데 사용됩니다. 자바에서는 클래스 이름의 첫 글자를 대문자로 하는 것이 관례입니다
필드 (Fields) 또는 인스턴스 변수 (Instance Variables): 필드는 클래스의 상태(state)를 저장하는 변수입니다. 클래스 내부에서 선언되며, 객체가 생성될 때 각 객체에 고유한 값을 가질 수 있습니다
메서드 (Methods): 메서드는 클래스가 수행할 수 있는 동작이나 기능을 정의합니다. 메서드는 특정 작업을 수행하기 위한 코드를 포함합니다.
생성자 (Constructors): 생성자는 객체가 생성될 때 호출되며, 객체의 초기화를 담당합니다. 생성자의 이름은 클래스의 이름과 동일하며, 반환 타입이 없습니다.
초기화 블록 (Initialization Blocks): 초기화 블록은 인스턴스 초기화 블록과 정적 초기화 블록으로 나뉩니다. 이들은 필드의 초기화에 사용됩니다.
내부 클래스 (Inner Classes): 내부 클래스는 클래스 내에 선언된 또 다른 클래스입니다. 내부 클래스는 외부 클래스의 멤버에 쉽게 접근할 수 있습니다.
인터페이스 (Interfaces): 인터페이스는 클래스가 구현해야 하는 메서드의 집합을 정의합니다. 클래스는 여러 인터페이스를 구현할 수 있습니다.
상수 (Constants): 상수는 변경되지 않는 값을 저장하기 위한 변수입니다. static과 final 키워드를 사용하여 정의합니다.
class Circle2 {
int radius;
void setRadius(int radius) {
this.radius = radius;
}
int getRadius() {
return radius;
}
double getArea() {
return radius*radius*Math.PI;
}
}
public class _06 {
public static void main(String[] args) {
Circle2 circle = new Circle2();
circle.setRadius(5);
System.out.println(circle.getArea());
}
}
객체(Object)는 객체 지향 프로그래밍(OOP)의 핵심 개념 중 하나로, 데이터와 해당 데이터와 관련된 동작(메소드)을 하나로 묶어주는 단위입니다. 객체는 현실 세계의 사물이나 개념을 프로그래밍적으로 모델링한 것으로, 클래스로부터 생성됩니다.
객체의 구성 요소
클래스와 객체의 관계
-클래스 이름및 함수구성은 본인이 구성 해 볼것
-1 부터 num 까지 합을 구하는 class 를 작성하도록 하시오
class Sum{
int sum = 0;
int sumNum(int num) {
for(int i = 1;i <= num;i++) {
sum += i;
}
return sum;
}
}
public class _06 {
public static void main(String[] args) {
Sum sum = new Sum();
System.out.println(sum.sumNum(100));
}
}
Gugudan gugudan = new Gugudan()
gugudan.printGuGu(10) // 1단 부터 10단 까지 출력
gugudan.printGuGu(20) // 1단 부터 20단 까지 출력
class Gugudan {
void printGuGu(int n) {
for (int i = 1; i <= n; i++) {
System.out.println(i + "단:");
for (int j = 1; j <= 9; j++) {
System.out.println(i + " x " + j + " = " + (i * j));
}
System.out.println();
}
}
}
public class _06 {
public static void main(String[] args) {
Gugudan gugudan = new Gugudan();
gugudan.printGuGu(10);
gugudan.printGuGu(20);
}
}
Star star = new Star()
star.printStar(5) //
star.reverseStar(5) //
=================================

class Star {
void printStar(int n) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
void reverseStar(int n) {
for (int i = n; i >= 1; i--) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
void printFullPattern(int n) {
printStar(n);
reverseStar(n);
}
}
public class _06 {
public static void main(String[] args) {
Star star = new Star();
star.printStar(5);
star.reverseStar(5);
star.printFullPattern(5);
}
}
main(){
Money money = new Money();
money.setMoney(1456000);
money.show();
}
출력===================
1456000
오만원 : 29장
만원 : 0장
오천원 : 1장
천원 : 1장
오백원 : 0개
백원 : 0개
class Money{
int money;
void setMoney(int money) {
this.money=money;
}
void show() {
int money50000, money10000, money5000, money1000, money500, money100;
int saveMoney = money;
money50000 = saveMoney / 50000;
saveMoney = saveMoney % 50000;
money10000 = saveMoney / 10000;
saveMoney = saveMoney % 10000;
money5000 = saveMoney / 5000;
saveMoney = saveMoney % 5000;
money1000 = saveMoney / 1000;
saveMoney = saveMoney % 1000;
money500 = saveMoney / 500;
saveMoney = saveMoney % 500;
money100 = saveMoney / 100;
saveMoney = saveMoney % 100;
System.out.println(money);
System.out.println("오만원:"+money50000+"장");
System.out.println("만원:"+money10000+"장");
System.out.println("오천원:"+money5000+"장");
System.out.println("천원:"+money1000+"장");
System.out.println("오백원:"+money500+"개");
System.out.println("백원:"+money100+"개");
}
}
public class _06 {
public static void main(String[] args) {
Money money=new Money();
money.setMoney(1456000);
money.show();
}
}