자바(12)
-
Spring- Component Bean 기본 설정
Component Bean 에서도 앞서 적용했던 설정들을 @Lazy,@Scope,@PostConstruct,@PreDestroy 등의 어노테이션을 통해 적용 가능하다. 1. @Lazy @Lazy 어노테이션은 해당 클래스를 불러 올 시 자동으로 빈객체가 생성 되는 것을 막고 수동 생성으로만 빈 객체가 생성된다. @Component @Lazy public class TestBean1 { } 2. @Scope 빈 객체는 기본적으로 싱글톤 생성이다. 이런 빈 객체를 @Scope 어노테이션을 통해 prototype으로 설정 가능하다. @Component @Scope("prototype") public class TestBean1 { } 3. @PostConstruct, @PreDestroy @PostConstru..
2020.08.27 -
Java - 추상메서드, 인터페이스
자바의 메서드에는 일반메서드, 정적메서드 그리고 추상메서드가 있다. 세개의 특징을 보면 아래와 같다. 1.일반메서드->객체생성으로 호출가능=>특별한 목적,기능 2.정적메서드->객체생성 없이 호출이 가능->단순,반복,보편적인 기능 3.추상메서드--->1)메서드의 선언만 되어있는 메서드 public abstract void go(); //1) ~메서드명(); ======== abstract public void go(){} //2) ->기능이 없는것 ======== 일반메서드 2)추상메서드선언을 위해 앞에=> abstract 예약어를 써준다. 3)추상메서드를 한개라도 가지고 있는 클래스를 추상클래스라고 한다. =>추상클래스를 일반클래스와 구분 abstract class 클래스명 ** 추상클래스특성 ** 1)..
2020.08.23 -
Java - static(정적)
java에서 변수나 메서드를 선언할 때 static이 붙는 경우가 있다. static은 정적이라는 뜻으로 정적메서드, 정적변수를 선언하면서 사용된다. 정적메서드, 정적변수로 선언을 하게 된다면 모든 객체가 해당 변수, 메서드를 공유 가능하다. 단, 정적 변수, 메서드는 일반 변수, 메서드와 다른 메모리 공간을 사용하기에 정적메서드에서 일반적인 방법으로 일반 변수 및 메서드를 사용 불가하다. 사용하기 위해서는 해당 객체를 호출하고 해당객체.변수명을 통해서 사용 가능하다. 1. 정적 멤버(클래스 멤버)는 static 키워드가 붙은 메소드 및 필드(전역변수)를 의미한다. 2. static은 여러 인스턴스에서 동일한 데이터나 로직을 공유해야 할 때 사용한다. 3. 정적 멤버는 클래스명으로 바로 사용이 가능하다...
2020.08.23 -
Java - final
자바에서는 상수를 선언하기 위해 final을 사용한다. 변수등에 final이 붙게 된다면 더이상 수정이 불가능하다. 1. 변수 앞 final => 변수에 새로운 값 대입 불가 2. 메서드앞에 final =>상속은 허용해주는데 특별히 중요한 메서드만 오버라이딩 금지 하기위한 목적 3. 클래스 앞에 final =>처음부터 상속자체가 불가->모든 메서드는 오버라이딩 불가 예제 소스 //3.final class 클래스명=>상속금지 클래스=>허용X=>중요한 클래스(System) final class Parent{ //1.final + 멤버변수 또는 지역변수=>상수화가 된다.(값이 고정)=>전부 대문자로 사용 final int COUNT=1; //2.final + 메서드=>상속은 허용해주지만 오버라이딩(=재정의)만..
2020.08.23 -
Java - 접근지정자
Java에서는 보안등 여러가지 이유로 클래스나 객체, 메서드에 다른 사용자나 객체등이 접근하는 것을 막을 수 있다. 이를 접근 지정자라 한다. 자바에서 접근지정자는 public, default, protected, private 네가지 종류가 있다. 1.public 접근지정자=> - 같은 패키지에 있는 클래스들끼리 접근 O - 다른 패키지에 있는 클래스들끼리 접근 O - 자기 클래스내에서도 접근 O (private) - 상속한 객체로 접근 가능 2 .private 접근지정자=> - 같은 패키지에서는 접근X - 다른 패키지에서도 접근X - 자기 클래스내에서만 접근 O 3.(default) 접근지정자=> - 같은 패키지에 있는 클래스들끼리 접근 O - 다른 패키지에 있는 클래스들끼리 접근X - 자기 클래스내..
2020.08.23 -
Java - 상속(2) - super()
한 클래스에서 생성자를 호출하기 위해서 this()를 사용하였다. 만약 상속의 관계에 있는 경우 부모 클래스의 생성자를 호출하는 방법이 있다. 바로, super를 사용하는 것이다. class A extends B{ A(){ super(); } } class B { System.out.println("B"); } 위와 같은 코드에서 A를 호출한다면 A의 생성자에 있는 super()은 부모 클래스인 B의 생성자를 호출한다. 결국 console에 B가 출력 될 것이다. 더 복잡한 코드이다. 주석에 써놓은 숫자 순서대로 실행이 된다. 예제 1. class Parent extends Object { //상속관계 =>object()호출 (3) (9) public Parent() { super();//(2) (8) ..
2020.08.23