아직 MVC 패천에 대해서 깊게 배우지 않았기 때문에 MVC가 각각 무엇을 뜻하는지 정도만 정리하고 그 이상은 추후에 정리하도록 하겠다. MVC는 개발할 때 사용되는 디자인 패턴을 말한다. M은 Model, V는 View, C는 Controller를 뜻한다. 하나씩 알아가보자. Model 데이터를 가진 객체를 말한다. DAO (Data Access Object) 데이터베이스의 데이터 접근하기 위한 객체로 DB에 접근하기 위한 로직을 분리하기 위해 사용한다. 직접 DB에 접근해서 데이터를 CRUD를 한다. DTO (Data Transfer Object) 계층 간 데이터 교환을 위한 역할을 하고, 로직을 가지지 않는 객체이며 getter와 setter 메소드만 가진 클래스를 의미한다. VO (Value Ob..
일반적으로 객체 지향 프로그래밍에서는 객체의 필드를 객체 외부에서 직접적으로 접근하는 것을 막는다. 왜냐하면 외부에서 마음대로 변경할 경우 객체의 무결성(의도하지 않은 요인에 의해 데이터, 시스템 등이 변경되거나 손상되지 않고 완전성, 일관성 등을 보장하는 특성)이 깨질 수 있기 때문이다. 예를 들어서 나이나 속도는 음수가 될 수 없는데 외부에서 음수로 변경한다면 무결성이 깨지게 되는 것이다. 그렇기 때문에 객체 지향 프로그래밍에서는 메소드를 통해서 필드를 변경해야 한다. 클래스를 선언할 때 필드(멤버 변수)는 private로 선언해서 외부로부터 보호하고, 필드는 getter와 setter 메소드를 이용해서 읽어오고 사용하는 것이 좋다. 그렇다면 getter와 setter가 무엇일까? getter와 se..
접근 제한자 종류 1) public : 외부 클래스가 자유롭게 사용할 수 있다. package practice.ex1; public class PublicEx { public int a = 10; } package practice.ex1;// 같은 패키지 public class Test { public static void main(String[] args) { PublicEx publicEx = new PublicEx(); System.out.println(publicEx.a);// 출력 가능 } } package practice.ex2;// 다른 패키지 import practice.ex1.PublicEx; public class Test { public static void main(String[] ..
오버로딩에 대해서는 앞에서 다룬 적이 있다. 비슷한 단어지만 뜻은 완전히 다른 오버라이딩과 같이 비교를 해보도록 하자. 오버로딩 클래스내에 같은 이름의 메소드를 여러 개 선언하는 것을 오버로딩이라고 한다. 오버로딩의 조건 1. 메소드 이름은 같아야 한다. 2. 매개 변수의 개수나 타입이 달라야 한다. 리턴 타입은 아무런 상관이 없다는 것에 유의하자. public class OverloadingEx { void print() { System.out.println("매개변수가 없는 오버로딩 예제1"); } void print(int a) { System.out.println("매개변수가 int형인 오버로딩 예제2"); } void print(int a, String s) { System.out.println..
이전에 멤버 변수를 설명하면서 클래스 변수를 설명하면서 static 단어를 잠깐 언급한 적이 있다. 인스턴스 멤버와 정적 멤버를 다시 한번 더 정리하면서 static에 대해 알아보도록 하자. 인스턴스 멤버와 this 인스턴스 멤버란 객체를 생성한 후 사용할 수 있는 필드와 메소드라고 말할 수 있다. 객체 내부에서 인스턴스 멤버에 접근하기 위해 this를 사용해야 한다. 저번에 생성자를 설명하면서 말했던 것처럼 this는 객체 자신을 가르킨다. 생성자와 메소드의 매개 변수 이름이 필드와 동일한 경우 인스턴스 멤버인 필드를 명시하고 할 때 사용한다. Car(String company){ this.company = company; } 즉, 위의 코드는 매개 변수 company의 값을 필드 company에 저장..
날짜를 다루기 위한 클래스로 Date 클래스와 Calendar 클래스가 있다. Date 클래스를 사용하면 유럽식(율리어스력) 형식으로 날짜가 출력된다. 유럽식 형식은 아래와 같이 출력되는 것을 말한다. Sat May 06 23:59:14 KST 2023 위와 같은 형식은 우리가 보기엔 불편하므로 미터법 형식으로 날짜를 변경하도록 한다. 미터법 형식은 아래와 같이 출력되는 것을 말한다. 0000년 00월 00일 00시 00분 00초 미터법 형식으로 출력하고 싶다면 SimpleDateFormat 클래스를 사용하면 된다. 오늘 날짜를 지정된 형식으로 출력하는 방법은 아래와 같다. 1. 출력할 날짜 형식을 문자열로 지정한다. 2. SimpleDateFormat 객체를 생성한다. 3. format() 메소드에 출..
생성자 오버로딩 매개 변수를 달리하는 생성자를 여러 개 선언하는 것을 말한다. 생성자 오버로딩 시 주의할 점은 매개 변수의 타입과 개수 그리고 선언된 순서가 달라야 한다는 것이다. 즉, 매개 변수의 타입과 개수 그리고 선언된 순서가 똑같을 경우 매개 변수의 이름만 바꾸는 것은 오버로딩이 아니라는 것이다. public class Car { String company = "기아"; String color; int maxSpeed; // 생성자1 Car(){ } // 생성자2 Car(String color){ this.color = color; } // 생성자3 Car(String color, int maxSpeed){ this.color = color; this.maxSpeed = maxSpeed; } } ..
필드 객체의 고유 데이터, 부품 객체, 상태 정보를 저장하는 곳으로 변수와 비슷하나 필드를 변수라고 부르지 않는다. 변수와 필드의 차이점 변수 : 생성자와 메소드 내에서만 사용되고 생성자와 메소드가 실행 종료되면 자동 소멸된다. 필드 : 생성자와 메소드 전체에서 사용되며 객체가 소멸되지 않는 한 객체와 함께 존재한다. : 클래스 중괄호 {} 블록 어디서든 존재할 수 있으나 생성자와 메소드 중괄호 {} 블록 내부에서는 선언될 수 없다. ★필드와 지역 변수의 차이점을 잘 정리해놓은 사이트★ https://rorobong.tistory.com/118 [JAVA] 자바 클래스 내부 구성 - 필드 안녕하세요 로로봉입니다 : ) 자바에서 필드에 대해 알아보도록 하겠습니다. 1) 필드와 지역 변수의 구분 필드는 클래..