백지부터 시작하는 이세계 코딩 생활
#객체와 클래스 #접근지정자 #사각형넓이 구하기 본문
// Q. 객체와 클래스의 차이점은?
// 클래스는 하나의 틀을 의미함.
// 클래스 = 필드+매서드
// 클래스 이름만 대문자로 시작하는 특징이 있고, 일종의 약속임.
// 클래스라는 건 직접적으로 값이나 변수가 만들어지는 건 아님.
// 그래서 따로 선언을 해줘야 하며, 이때 point 연산자를 사용하여 값을 입력할 수 있음.
// 예) ~.x = 10; ~.y=11;
// 클래스 : 매서드를 통해서 값을 사용해야 한다.
// 객체는 클래스 속의 element 를 의미.
// 객체는 하나의 타입을 만들어낸것과 같다.
// 객체는 속성과 기능을 가지고 있다.
// Q. 객체지향 특성 설명
//객체지향 특징: 캡슐화, 데이터은닉, 상속, 다양성을 가짐.
//접근지정자 - 데이터은닉 관계가 있음.
//JAVA 에서는 이름이 같아도 매개변수가 다르면 다른 매서드라고 판단함. 이를 over road라고 함.
//*따라서 매개변수의 갯수와 타입만 달리해주면 계속 추가해줄 수 있게 된다. (해당 타입에 매서드를 계속 추가 가능 하다는 뜻.)
//다형성을 구현하기 위해 객체지향을 학습한다. (편리성이 으뜸임) OOP : Oriented Object Programming
// 멤버가 4타입의 접근 지정자로 선언되었을 때, 접근여부 판단.
// 1. default 2.public 3.protected 4.private
// public : 접근제한 없음.
// protected : 동일패키지와 상속받은 클래스의 내부에서 가능.(동일한 클래스,패키지, 다른 패키지의 자식클래스 )
// default : 동일패키지 내에서만 가능(동일 클래스와 패키지에서 허용)
// private : 동일 클래스 내에서만 가능.
// static 매소드에서는 this 래퍼런스를 사용불가.
// 정적 메소드에서는 인스턴스 변수 사용불가.
사각형 넓이 구하기
package s0511_일일과제;
//Q. 사각형 넓이 구하기.
class Rectangle {
int x1, y1, x2, y2;
// 필드생성
public Rectangle(int x1, int y1, int x2, int y2) {
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
}//
public Rectangle() {
// TODO Auto-generated constructor stub
}
public int square() {
int rectangleArea;
rectangleArea = Math.abs(x2 - x1) * Math.abs(y2 - y1);
return rectangleArea;
}
public void show() {
System.out.println("coordinate is: " + x1 + "," + y1 + "," + x2 + "," + y2);
System.out.println("rectangleArea is: "+square());
}
public void set(int x1, int y1, int x2, int y2) {
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
}
public boolean equals(Rectangle r) {
if(Math.abs(x1 - x2) * Math.abs(y1 - y2) == r.square()) {
return true;
}
return false;
}
}//
public class 일일과제실습2 {
public static void main(String[] args) {
Rectangle r = new Rectangle();
Rectangle s = new Rectangle(1, 1, 2, 3);
r.show();
s.show();
System.out.println(s.square());
r.set(-2, -2, -1, 4);
r.show();
System.out.println(r.square());
if (r.equals(s)) {
System.out.println("같은 사각형");
}
}// end
}//
'JAVA > etc' 카테고리의 다른 글
vc code with spring (0) | 2020.08.23 |
---|---|
Tomcat port 중복될 때 (0) | 2020.08.20 |
instance 와 this (0) | 2020.08.09 |
enum 함수 (0) | 2020.08.09 |
반복문 들어가기 전에.. (0) | 2020.08.08 |