class Circle{
double radius;
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getArea() {
return radius * radius * Math.PI;
}
}
=====
Circle circle = new Circle();
class Rectangle{
double x,y;
Rectangle rec = new Rectangle();
public double getArea() {
return x * y;
}
}
객체
: '클래스'라는 틀을 통해 만들어낸 실체
클래스
: 구현하려는 기능을 모아둔 설계도
double area = getCircleArea(10);
System.out.println(area); //314.0
area = getRectangleArea(10,20);
System.out.println(area); //200.0
area = getRectangleArea(40,20);
System.out.println(area); //200.0
area = getTriangleArea(40,20);
System.out.println(area); //400.0
int code = getAscCode('A');
System.out.println(code); //65
public static void main(String[] args) {
getCircleArea(10);
System.out.println(getRectangleArea(10, 20));
System.out.println(getTriangleArea(40,20));
System.out.println(getAscCode('A'));
}
public static void getCircleArea(double n) {
final double PI = 3.14;
return r * r * PI;
}
public static double getRectangleArea(double a, double b) {
return a * b;
}
public static double getTriangleArea(double a, double b) {
return (a*b)/2;
}
public static int getAscCode(char ch) {
return (int)ch;
}
각 클래스마다 존재하는 것
Instance-specific 항목으로 Instance Component(인스턴스)라고 한다. 이것은 클래스를 참고하여 객체를 생성하면 메모리에 생성되는 즉 객체를 생성할 때마다 초기화되는 항목들이다.
인스턴스의 수와 상관없이 전체 클래스에서 오직 하나만 존재하는 것
Non Instance-specific 항목으로 Static Component라고 한다. 이것은 클래스 생성자(CREATE OBJECT 구문)을 만나면 프로그램이 종료될 때까지 메모리에 저장되며 클래스에 의존적인 항목이다.
Static 속성은 CLASS-DATA 구문으로 선언하고, Static 메서드는 CLASS-METHOD 구문으로 선언한다.
Static 속성과 메서드는 클래스의 컴포넌트를 조작하기 위해 선언되는 것이며, 객체를 생성하지 않아도 메모리에 로드되어 바로 사용할 수 있다.
클래스의 객체를 생성하면, 객체의 멤버 변수들은 개별적으로 메모리에 생성된다.
그러나, 클래스의 멤버 함수는 객체의 개수에 관계 없이 단 하나만 생성된다.
멤버 함수를 호출할 때마다 내부적으로 멤버 함수를 호출하는 객체의 주소값을 넘겨 사용하기 때문에 멤버 함수는 어떤 객체의 멤버 변수를 변경해야할 지 알 수 있다.
그래서 클래스의 멤버 함수는 객체의 개수에 상관 없이 단 하나만 생성된다.
StraPrint strPrint = new StarPrint();
strPrint.printTriangle(3);
System.out.println();
strPrint.printReverseTriangle(3);
===============================
*
**
***
***
**
*
class StarPrint {
void printTriangle(int num) {
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
void printReverseTriangle(int num) {
for (int i = 1; i <= num; i++) {
for (int j = i; j <= num; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
public static void main(String[] args) {
StarPrint strPrint = new StarPrint();
strPrint.printTriangle(3);
System.out.println();
strPrint.printReverseTriangle(3);
}
Gugudan gugudan = new Gugudan();
gugudan.printGugu(10); //1단부터 10단까지 출력
gugudan.printGugu(20); //1단부터 20단까지 출력
class Gugudan {
void printGugu(int num){
for(int i = 1; i <= num; i++) {
for(int j = 1; j <= num; j++)
System.out.println(i + " * " + j + " = " + ( i * j));
}
}
}
public static void main(String[] args) {
Gugudan gugudan = new Gugudan();
gugudan.printGugu(10);
gugudan.printGugu(20);
}
class Grade {
int kor, eng, math;
double avg;
char grade;
public void setGrade (int kor, int eng, int math) {
this.kor=kor;
this.eng=eng;
this.math=math;
}
public double getAvg() {
final double TOTAL = (kor + eng + math);
avg = TOTAL/3.0;
return avg;
}
public void getGrade() {
if (avg >= 90)
System.out.println("수");
else if (avg >= 80)
System.out.println("우");
else if (avg >= 70)
System.out.println("미");
else if (avg >= 60)
System.out.println("양");
else
System.out.println("가");
}
}
public static void main(String[] args) {
Grade grade= new Grade();
grade.setGrade(80, 80, 90);
System.out.println(grade.kor + ", " +grade.eng + ", " + grade.math);
System.out.println(grade.getAvg());
grade.getGrade();
}
GetSum getsum = new GetSum(); // 1)객체 생성
int num; // 2)num 변수 선언
num = 100;
getsum.setNum(num); // 3)getsum 객체의 setNum함수 호출, num값 50 저장
num = getsum.sum(); // 4)getsum객체의 sum함수 호출, 1-50까지 합 구함
System.out.println(num);
getsum.setNum(1000);
num = getsum.sum(); // 4)getsum객체의 sum함수 호출, 1-50까지 합 구함
System.out.println(num);
class GetSum {
int num;
public void setNum(int num) {
this.num = num;
}
public int getNum(int num) {
return num;
}
int sum() {
int sum=0;
for(int i = 1; i <=num; i++) {
sum = sum + i;
}
return sum;
}
}
public static void main(String[] args) {
GetSum getsum = new GetSum(); // 객체생성
num = 100;
getsum.setNum(num); // getsum 객체의 setNum함수 호출, num값 50 저장
num = getsum.sum(); // getsum객체의 sum함수 호출, 1-50까지 합 구함
System.out.println(num);
}