본문 바로가기

* Web37

[Java] 자바 : 상속을 금지하는 final 클래스 간 상속이 가능하다면, 반대로 클래스 간 상속을 막아 놓는것이 있다. 그 역할을 해주는 키워드가 바로 final이다. final의 경우 2가지로 사용 할 수 있다. 바로 클래스간 상속 금지와 메소드 오버라이딩의 금지이다. final은 - 클래스간 상속 금지 final class A { } class B { } : B에서 A를 상속할려고 하면 불가능하다. final로 막아놨기 때문에 - 메소드 오버라이딩의 금지 class A{ final int testresult(){ } } class B { } : 만약 B에서 A의 final 메소드를 오버라이딩 할려고 하면 컴파일 에러가 발생한다. 2021. 3. 22.
[Spring Boot] 스프링 부트 : 초기 개발환경 설정 및 프로젝트 빠르게 생성하기 Eclipse를 사용하게 되면 자체 Spring Starter Project를 이용하면 쉽게 설정이 가능하지만, 인텔리제이 커뮤니티 버전을 사용하다 보면 해당 설정을 일일이 지정해줘야 한다. 인텔리제이 Ultimate 버전에는 spring initializr가 포함 되어 있지만, Community 에서는 그 역시 불가능하다. 그렇기에 웹 상에서 spring initializr를 설정 하면 보다 빠르게 생성을 할 수 있다. https://start.spring.io/ 위의 해당 사이트에서 접속하여 Dependecies를 설정을 미리 해주면 Gradle로 일일이 주입을 안해줘도 된다. 2021. 3. 21.
[Java] 자바 : 인터페이스(interface) 개념과 동시에 다형성 개념 익히기 Java 자바 : 인터페이스(Interface)로 바라보는 다형성 개념 인터페이스란? "클래스에 역할을 부여하기 위한 역할 정의 방법." 책에서 목차를 생각하면 쉽다.(글쓴이의 말하고자 하는 바의 전체 개념을 목차에다 설명하고 자세한 설명은 해당 페이지에 가면 정리가 되어있다.) interface Book{ // 책을 읽을거야 근데 그 방법은 아직 설명X, 그냥 나 이렇게 하겠다고만 선언 public void readContext(); // 내용이 없는 껍데기 메소드 - > 프로토 타입 메소드 = 추상 메소드 // 나는 나의 생각을 적을거야 어떻게? 아직 그건 몰라~ public void writemyOpinion(); } class Mybook implements Book { //@메소드 오버라이딩 p.. 2021. 3. 19.
[Java] 자바 : (상속)부모 생성자 호출을 위한 super 부모와 자식 클래스 관계에서, 자식 객체를 생성과 동시에 초기화를 하기위해서는 부모의 생성자가 우선적으로 호출이 필요하다. 이러한 부모 클래스에 있는 생성자를 호출하기 위해서 자식 클래스에서 super를 사용한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 class Main { ... Child c = new Child("김김김", 1, "혼자음식먹기"); ... } class Parent { protected String name; protected int age; public Parent(String name, int age) { this.name = name; this.age = age; } } class Child ext.. 2021. 3. 18.
[Java] 자바 : 메소드 오버로딩(Overloading) vs 메소드 오버라이딩(Overiding) 차이점? 메소드 오버로딩(Overloading)과 메소드 오버라이딩(Overriding) 한 번에 이해하기 본론으로 가기전, 명확한 개념을 딱 집어서 이해하기 보다는 그림으로 이해하는것이 가장 쉽습니다. 또한 기준이 되는 것은 클래스 1개의 내부에서 일어나는 일인지 혹은 2개 이상의 클래스에서 발생하는지를 기준으로 접근하시면 쉽습니다. 또한 영어단어를 기반으로 이해하기 보다는, 클래스 상에서 어떻게 쓰이는지 중점적으로 보고 머리에 그림을 그리며 이해하면 쉽습니다. [ 판단 기준 ] - 클래스 1개에서 일어나는가? - 2개 이상의 클래스에서 일어나는가? * 오버로딩(Overloading) 한 클래스(n=1)내에 똑같은 이름의 메소드를 여러 개 선언 하는 것. class ONE{ ... ... void upgrade.. 2021. 3. 18.