java

    [Java] 회원 가입 코드 구현 (feat. interface, abstract)

    인터페이스, 추상 메소드 등을 활용해서 회원 가입, 회원 조회, 회원 수정, 회원 삭제 등의 아주 기본적인 CRUD를 구현한 자바 소스 코드입니다. 인터페이스와 추상 메소드를 공부하면서 구현을 한 번 해보고자 단순한 기능을 통해 가벼운 참고용으로 만들었습니다. 1. Main.java public class Main { public static Boolean run = true; public static void main(String[] args) { while(run) { MemberServiceImpl memberService = new MemberServiceImpl(); memberService.init(); } } } 2. MemberService.java public interface Membe..

    [Java] 접근 제한자 (public, private, protected, default)

    접근 제한자 자바를 사용하면서 많이 접하게 되는 public, private, protected. 보통 public은 어디서든 접근 가능한 공용 접근자, private은 동일 클래스에서만 접근하는 느낌으로 생각을 했는데 protected나 default는 어떻게 쓰일까? public : 모든 접근을 허용하는 접근 제한자. 어떤 클래스에서 접근을 해도 허용함. protected : 상속 받은 클래스 혹은 같은 패키지 내에서 접근이 가능함. default : 기본 접근 제한자로, 아무 것도 적지 않은 상태. 동일 클래스 내부와 동일 패키지에서만 접근이 가능함. private : 외부에서는 접근이 불가능하며 같은 클래스 내에서만 접근 가능. 클래스 내부 동일 패키지 하위 클래스 그 외 영역 public O O..

    [Java] 스태틱 (static)

    스태틱 (static) static은 변수와 메소드에 사용할 수 있다. static은 '고정된/정적인' 개념으로 생각하면 편하다. static으로 선언된 변수나 메소드는 프로그램이 실행됨과 동시에 static 메모리 영역에 만들어지며, 종료와 동시에 사라진다. 메인 메소드를 정의할 때 public static void main으로 시작하는 것을 생각하면 이해가 더 편하다. 그 외 일반 변수나 메소드는 사용을 위해 선언 되었을 때 heap 메모리 영역에 만들어지며, 흔히 말하는 가비지 컬렉터 (Garbage Collector)의 영향 아래에서 동적으로 사용된다고 생각하면 될 것 같다.

    [Java] 오버로딩 & 오버라이딩 (Overloading, Overriding)

    Overload (오버로드) 동일한 이름의 메소드를 여러 개 정의해서 사용하는 방법. 메소드를 한 공간 위에 계속 쌓는다는 느낌. 매개변수의 유형이나 개수 등을 다르게 만들어 다양하게 호출될 수 있도록 한다. 메소드를 여러 기능으로 만들 때 유용하다. 개발자의 편의를 위한 기능이라고도 볼 수 있을 것 같다. public class Cal { int plus(int a, int b) { return a+b; } int plus(int a, int b, int c) { return a+b+c; } } Override (오버라이드) 상속 관계를 갖는 상위 클래스의 메소드를 하위 클래스에서 재정의하여 사용하는 방법. 메소드를 위에 덧 쓰는 (Over Writing?) 느낌. 상위 클래스의 메소드를 하위 클래스에..