19일차 java 연산(2023-01-18)

권단비·2023년 1월 18일
0

IT

목록 보기
36/139

・절차지향 C언어
・객체지향

[Eclipse 연습]

[계산]
class Song {
	String album;
	String artist;
	int year;
	String country;

	Song(String album, String artist, int year, String country) {
		this.album = album;
		this.artist = artist;
		this.year = year;
		this.country = country;
	}
	void show() {
		System.out.println(year + country + artist + album);
	}
}
public class Test20 {
	public static void main(String[] args) {
		Song song = new Song("Dancing Queen", "ABBA", 1978, "스웨덴");
		song.show();
	}
}
[결과값]
1978스웨덴ABBADancing Queen

[계산]
public class Test20 {
	public static void main(String[] args) {
		com.global1.ex.Test19 c1 = new com.global1.ex.Test19();
		com.global2.ex2.Test19 c2 = new com.global2.ex2.Test19();
	}
}
[결과값]
baby입니다.3
baby입니다.2

[import]

모든 자바.class는 반드시 패키지명이 존재한다.
패키지명이 선언이 안되어 있는 경우 디폴트 값이 자동으로 선언된다.
[계산]
import com.fxmx.simple.*; // *는 패키지로 묶인 전체 클래스에 대한 패키지 선언
//import com.wxfx.smart.*;
//==============================
public class Test20 {
	public static void main(String[] args) {
		Circle3 c1 = new Circle3(); // import를 사용하였기 때문에 주소를 기재하지 않아도 끌고 온다.
		// com.wxfx.smart.Circle3 c2 = new com.wxfx.smart.Circle3();
	}
}
[결과값]
A회사 입니다. com.fxmx.simple

[this]

객체 자기 자신을 가리키는 용도
this 생성자에서 다른 생성자를 호출할 때 쓰임
[계산]
//this의 이해
class ThisTest {
	String title;
	String artist;
	ThisTest() {
		System.out.println("디폴트 생성자 입니다.");
	}
	ThisTest(String title, String artist) {
		this(); // ThisTest()를 의미한다.
		this.title = title;
		this.artist = artist;
		// show(); 같은 class 내에서는 호출 가능하다.
	}
	void show() {
		System.out.println(title + "::" + artist);
	}
}
public class This {
	public static void main(String[] args) {
		ThisTest a = new ThisTest("Dancing queen", "ABBA"); // 객체생성
//		a.show();
		System.out.println(a);
	}
}
[결과값]
디폴트 생성자 입니다.
Dancing queen::ABBA
ThisTest@4926097b

[계산]
//this의 이해
//객체 자기 자신을 가리키는 용도
//this 생성자에서 다른 생성자를 호출할 때 쓰임
class TV {
	int inch;
	String color;
	TV(int inch, String color) {
		this.inch = inch;
		this.color = color;
	}
	int getSize() {
		return inch;
	}
	String getColor() {
		return color;
	}
	void show() {
		System.out.println(this.inch + "인치" + this.color + "색입니다.");
	}
	void compareSize(TV compareSize) {
		if (inch > compareSize.inch) {
			System.out.println("내가 큽니다.");
		} else if (inch == compareSize.inch) {
			System.out.println("나하고 내가 같습니다.");
		} else {
			System.out.println("내가 작습니다.");
		}
	}
}
//========================================================
public class This {
	public static void main(String[] args) {
		TV tv = new TV(10, "blue");
		TV tv2 = new TV(20, "blue");
		System.out.println(tv.getSize() + "인치 입니다");
		System.out.println(tv.getColor() + "색입니다");
		tv.show();// 10인치 blue 색 입니다.
		tv.compareSize(tv); // 같습니다.
		tv2.compareSize(tv); // 내가 큽니다.
	}
}
[결과값]
10인치 입니다
blue색입니다
10인치blue색입니다.
나하고 내가 같습니다.
내가 큽니다.

[정보은닉]

*중요*
OOP(object-oriented programming) 4가지 특징
1.정보은닉(information hiding) : 클래스 내부에서 어떤 식으로 처리가 이루어지는지는 알지 못하도록 설계된다.(함수 원리를 몰라도 사용할 수 있도록 하는 것)
2.상속(inheritance)
3.다형성(polymorphism) ⇒ 자바 실무에서 가장 중요함
4.캡슐화(encapsulation) 

0개의 댓글