수업일자: 2022.03.16
먼저 첫 수업에는 이클립스를 다운받아 기본적인 에디터 및 환경을 조성하였습니다.
하지만 저는 이클립스를 예전에는 자주 사용을 하였지만, 인텔리제이가 이미 세팅이 완료되었고,
손이 인텔리제이에 적응하였기에 생각을 하였기에 인텔리제이로 진행하였습니다.
(JDK 언급은 선생님께서 따로 말씀하지않으셨기에 1.8를 사용하였습니다.)
Java, 혹은 그 외 언어에 대한 짤막한 얘기 역시 듣게 되었습니다.
인터프리터 언어, 컴파일러 언어, 그리고 java의 수명, java의 작동원리, java가 많이 사용되는 이유 등등...
java의 작동원리와 많이 사용되는 이유를 간단하게 설명하자면
.java -Complie-> .class -JRE-> interpreter 방식으로 코드 수행
즉, .java 파일을 컴파일을 하여 .class(바이트 코드) 파일로 변환한 다음
JRE를 사용하여 인터프리터 방식으로 작동
이는 비효율적으로 작용할 수 있지만, 오히려 많이 사용되는 이유가 되었습니다.
그에 대한 이유는 단순합니다.
예를 들어 C언어를 사용하여 다른 환경에서 사용하고자한다면,
해당 환경에서 사용된 CPU, 그리고 그에 맞는 컴파일러가 존재해야 사용할 수 있습니다.
하지만, java는 해당 환경에 맞는 JRE만 있다면 어떤 환경에서 개발하였든 간에 적용할 수 있습니다.
가장 기초적인 자바 클래스를 하나 만들었습니다.
클래스명은 `Hello`로, "Hello, World"를 콘솔에 출력하도록 하였습니다.
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Hello, World!
그리고 변수, 인스턴스에 대해 배웠습니다.
(고양이 클래스를 추가할때, 새로운 기능을 추가하라고 하셨기에 기존 String으로 color를 구현하였는 데,
이를 Color 클래스로 바꿨습니다.)
public class Dog {
private String name;
private final Color color;
private int age = 0;
public Dog(Color color) {
this.color = color;
}
public Dog(String name, Color color) {
this.name = name;
this.color = color;
}
public Dog(String name, Color color, int age) {
this.name = name;
this.color = color;
this.age = age;
}
public void makeSound() {
System.out.println("멍멍");
}
public void eat(String food) {
System.out.println(name + "이(가) " + food + "을(를) 먹는다.");
}
public void printInformation() {
System.out.printf("이름: %s\n색깔: %s\n나이: %d\n", name, color, age);
}
}
public class Cat {
private String name;
private final Color color;
private int age = 0;
public Cat(Color color) {
this.color = color;
}
public Cat(String name, Color color) {
this.name = name;
this.color = color;
}
public Cat(String name, Color color, int age) {
this.name = name;
this.color = color;
this.age = age;
}
public void makeSound() {
System.out.println("야옹");
}
public void eat(String food) {
if (!food.equals("츄르")) {
System.out.println("츄르를 내놔라 인간");
}
System.out.println(name + "이(가) " + food + "을(를) 먹는다.");
}
public void printInformation() {
System.out.printf("이름: %s\n색깔: %s\n나이: %d\n", name, color, age);
}
public void nap() {
System.out.println("나, 잔다. 집사, 보좌해라");
}
}
public class Color {
private final int red;
private final int green;
private final int blue;
public Color(int red, int green, int blue) {
this.red = red;
this.green = green;
this.blue = blue;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Color color = (Color) o;
return red == color.red && green == color.green && blue == color.blue;
}
@Override
public int hashCode() {
return Objects.hash(red, green, blue);
}
}
public class DogTest {
public static void main(String[] args) {
Dog jindo = new Dog("흰둥이", new Color(255, 212, 0), 3);
Dog chichu = new Dog("검둥이", new Color(255, 192, 203), 7);
jindo.makeSound();
jindo.eat("개껌");
jindo.printInformation();
chichu.makeSound();
chichu.eat("사료");
chichu.printInformation();
Cat cat = new Cat("다솔", new Color(0, 0, 0), 2);
cat.makeSound();
cat.eat("사료");
cat.eat("츄르");
cat.printInformation();
cat.nap();
}
}
이상입니다.
'학교 공부 > 자바' 카테고리의 다른 글
[학교/자바] 두 번째 수업 (0) | 2022.03.24 |
---|