학교 공부/자바

[학교/자바] 첫 수업

오잎 클로버 2022. 3. 18. 08:30
728x90

수업일자: 2022.03.16

 

Java 로고

먼저 첫 수업에는 이클립스를 다운받아 기본적인 에디터 및 환경을 조성하였습니다.

이클립스 로고

하지만 저는 이클립스를 예전에는 자주 사용을 하였지만, 인텔리제이가 이미 세팅이 완료되었고,

손이 인텔리제이에 적응하였기에 생각을 하였기에 인텔리제이로 진행하였습니다.

(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