java 48

Object class , 숨겨진 최상위 객체

질문에 앞서 - 프로그램을 만들때 모든 객체는 해당 클래스가 존재해야 하며, 해당 클래스를 사용하기 위해서는 반드시 해당 클래스를 import 한 후 new 를 통해 생성해야 한다. 질문 - 그렇다면, String , int 등 주로 사용하는 객체들은 왜 new 로 객체생성을 하지 않아도 사용이 되는 것인가? 질문의동기 - 사실 이 질문은 Spring beans 의 DI 를 공부하다가 궁금하여서 찾아보게 되었다. 답변 : java.lang.Objec 클래스 - 모든 클래스는 그 선언과 동시에 Object 클래스를 상속받게 된다. ( 자동으로 ) Sample public class _String { public static void main(String[] args) { String str1="aa"; S..

Spring DI / IoC 를 설명하자

학습목표 : Spring DI / IoC 에 대한 개념을 이해해 보자 1. 자바 개념에서의 설명 자바소스 - 커피는 외부 클래스를 만들어서 사용한다. - 이때 외부 클래스를 사용하는걸 외부 클래스에 의존(Dependency) 한다고 한다. - 자바 소스에서는 대부분 이렇게 사용하고자 하는 클래스를 new 로 생성해서 사용한다. package team._springdi.ver1; /** * Dependency 의존관계 * 모닝커피를 마시자. 스벅에서 * 주문을 한다. ( 메뉴는 1-아메리카노 , 2-돌체라떼, 3-카푸치노 ) * * @author PC * */ public class Mver1 { public static void main(String[] args) { /* 외부 클래스 커피에 의존(Dep..

자바 빈즈 / 빈 .. 너는 누구인가?

자바 빈즈와 빈에 대한 약간의 뇌피셜... 자바 는 아시다시피 커피의 일종으로 인도네시아 자바 섬에서 생산되는 커피의 일종이다. 빈(bean) 이라는 단어는 콩을 뜻하며, Coffee bean 은 커피의 원료가 되는 커피나무의 열매 콩을 말한다. 그렇다면, 자바 빈(즈) 는 ? 커피에서 그 원료가 되는 커피 콩이 매우 중요하듯이, 자바 언어에서도 핵심이 되는 그 무엇인가를 빈이라 불리게 된게 아닐까?? 라는 뇌피셜.... 자바 언어에서 핵심이 되는 그 무엇 ? 스프링에서 핵심이 되는 그 무엇 ? 우리는 빈(빈즈)라 부른다. (뇌피셜이다)

Java/Beans or Bean 2021.06.05

for , forEach

자바는 1.5 버전부터 foreach loop 를 지원하고 있습니다. 기존에 사용하던 for 구문을 벗어나, 특히 collection 구조를 아주 손쉽게 사용하도록 합니다. 아래 샘플을 직접 실행해보면 쉽게 이해가 될것으로 보입니다. Java tutorial - https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html The for Statement (The Java™ Tutorials > Learning the Java Language > Language Basics) The Java Tutorials have been written for JDK 8. Examples and practices described in this page don..

Java/Basics 2021.06.03

enum 메서드 (values , orinal, valueOf ..생성자)

Blog 에서 배우다. ( https://www.opentutorials.org/module/1226/8025 ) 표 참고 Blog - ( https://limkydev.tistory.com/66 ) Static Methods valueOf(String arg) String 값을 enum에서 가져옴. 값이 없으면 예외 발생 valueOf(Class class, String arg) 넘겨받은 class에서 String찾아, enum에 가져옴. valueOf(String arg)는 내부적으로 자기자신 Class를 가져옴. values() eum의 요소들을 순서대로 enum타입의 배열로 리턴. (ENUM$VALUES)의 카피임으로 자주 호출하지 않길 Static이 아닌 Methods name() 호출된 값의 ..

Java/enum 2021.05.29

Blog 에서 배우다. 각종 Sample

Blog 에서 배우다. ( https://www.opentutorials.org/module/1226/8025 ) | 1. 일반적인 사용 ( enum 을 선언하여 사용 ) package self._enum.blog1; enum Type1 { WALKING, RUNNING, TRACKING, HIKING } /* * enum 을 클래스로 선언하여 사용 */ public class SampleMainVer1 { public String name; public int size; public Type1 type; public static void main(String[] qrgs) { SampleMainVer1 shoes = new SampleMainVer1(); shoes.name = "나이키"; shoes...

Java/enum 2021.05.29

[표준 API] 함수적 인터페이스 : @FunctionalInterface

학습목표 : 함수적 인터페이스를 이해하고 사용할 수 있다. 1. Runnable - run() 함수를 보유하며 리턴값과 매개변수가 없음. java.lang.Runnable @FunctionalInterface The Runnable interface should be implemented by any class whose instances are intended to be executed by a thread. The class must define a method of no arguments called run. package team.study._lamda.standardapi; public class RunnableExam { public static void main(String[] args) {..

[Lamda Expression] Anonymous Classes -> Lamda Expression

학습목표 : Anonymous Classes 예제를 람다식으로 풀어서 사용 할 수 있다. 람다 기본 문법 인터페이스자료형 객체명 = (parameter) -> 함수식 함수식이 하나일때는 한줄에 가능 함수식이 하나 이상일때는 -> { }; 로 처리해야 함. 이전과정 Anonymous Classes 를 Lamda 식으로 변환 변환 코드 package team.study._lamda; public class HelloWorldLamda { /* Lamda 는 하나의 메서드만 허용 */ @FunctionalInterface interface HelloWorld { public void greet(); } /* Lamda 는 하나의 메서드만 허용 */ @FunctionalInterface interface Hel..

[Anonymous Classes] 람다가 있기전 익명클래스가 있었다.

학습목표 :Anonymous Classes 를 정의할 수 있다. https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html Anonymous Classes (The Java™ Tutorials > Learning the Java Language > Classes and Objects) The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer av..

[ISP] 객체지향 설계 5 원칙 (4)

학습목표 : 인터페이스 분리 원칙 (Interface segregation principle)을 이해하고, 예제로 설명할 수 있다. ISP[Interface segregation principle] 인터페이스 분리 원칙 - "클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안된다." - 로버트 C. 마틴 단일 책임 원칙(SRP) 와 인터페이스 분할 원칙(ISP)은 같은 문제에 대한 두가지 다른 해석 인터페이스 최소주의 원칙 - 인터페이스를 통해 메서드를 외부에 제공할 때는 최소한의 메서드만 제공 예제) 못된 예제 package book.oopforsprings.lec05.solid; public class ISP남자_NO { public static void main(String[] arg..