개발일지349 인터페이스(Interface) 인터페이스란? 구현된 것이 아무것도 없는 밑 그림만 잇는 기본 설계도 (기능 중심 설계) *특성 멤버 변수, 일반 메서드를 가질 수 없고, 오직 추상 메서드와 상수만을 멤버로 가질 수 있다. * 추상 클래스보다 추상화가 더 높다. * 인터페이스는 표준, 약속, 규칙(강제성이 있는 규칙이다.) * 사용방법 * class 키워드 대신에 interface라는 키워드를 사용한다. * class와 같이 접근 제어 지시자를 public, default를 사용 할 수 있다. * 제약 사항 * 모든 멤버 변수는 public static final 이어야 한다. ex) public static final int SERIAL_NUMBER = 100; // 상수만을 가질 수 있다. public abstract void tu.. 개발일지/자바 2022. 9. 7. 디자인패턴 - 템플릿 패턴(final 사용법) 템플릿 메소드 패턴(Template Method Pattern) 이란? - 추상 메서드나 구현 된 메서드를 활용하여 코드의 흐름(시나리오)를 정의하는 메서드 - final 선언하여 하위 클래스에 재정의 할 수 없게 함 - 프레임워크에서 많이 사용되는 설계패턴 - 추상 클래스로 선언된 상위 클래스에서 탬플릿 메서드를 활용하여 전체적인 흐름을 정의 하고 하위 클래스에서 다르게 구현되어야 하는 부분은 추상 메서드로 선언하여 하위 클래스에서 구현 하도록 함 방법 1. (부모클래스) public abstract class [클래스명] { -- 부모클래스 } ----------------------------------------------------------------------------------------.. 개발일지/자바 2022. 9. 7. 업캐스팅, 다운캐스팅 캐스팅이란(Casting) : 캐스팅이란 타입을 변환하는 것을 말하며 형변환이라고도 한다. 자바의 상속 관계에 있는 부모와 자식 클래스 간에는 서로 간의 형변환이 가능하다. 업캐스팅이란(Upcasting) : 업캐스팅이란 자식 클래스의 객체가 부모 클래스 타입으로 형변환 되는 것을 말한다. 아래 코드에서 부모 클래스는 Person, 자식 클래스는 Student이다. 아래 코드에서 Person p = s; 부분이 업캐스팅한 부분이다. p가 Student 객체를 가리키지만, p는 Person 타입이기 때문에 Person 클래스의 멤버에만 접근이 가능하다. 그렇기 때문에 p.check에서 컴파일 타임 에러가 발생한다. 다운캐스팅이란(Downcasting) : 업캐스팅과 반대로 캐스팅 하는 것을 다운캐스팅이라고.. 개발일지/자바 2022. 9. 7. 추상 클래스 자바에서는 하나 이상의 추상 메소드를 포함하는 클래스를 가리켜 추상 클래스(abstract class)라고 합니다. 추상클래스선언 -특징- * 1. 클래스 type 앞에 abstract 키워드가 붙는다. * 2. 추상 클래스는 생성할 수 없다. (new를 할수없다 단순히 설계 역할만 한다.) * 3. 추상 메소드를 포함 할 수 있다. 하지만 추상 메소드를 꼭 포함하지는 않아도 된다. 추상 메소드(abstract method)란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미한다. 자바에서 추상 메소드를 선언하여 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위함이다. 추상메소드의 형태 (상속받은 클래스에서 사용할땐 Over.. 개발일지/자바 2022. 9. 5. 상속(부모, 자식 클래스) , 다형성 - 오버라이드(@Override) 상속이란? 쉽게 말해 부모 클래스(상위 클래스)와 자식 클래스(하위 클래스)가 있으며, 자식 클래스는 부모 클래스를 선택해서, 그 부모의 멤버를 상속받아 그대로 쓸 수 있게 된다. 상속을 하는 이유는 간단하다. 이미 마련되어 있던 클래스를 재사용해서 만들 수 있기 때문에 효율적이고, 개발 시간을 줄여주게 때문이다. 상속을 하더라도 자식 클래스가 부모의 모든 것들을 물려받는 것은 아니다. 부모 클래스의 private 접근 제한을 갖는 필드 및 메소드는 자식이 물려받을 수 없다. (priavate = 공유가 안됨) 부모와 자식 클래스가 서로 다른 패키지에 있다면, 부모의 default 접근 제한을 갖는 필드 및 메소드도 자식이 물려받을 수 없다 (default 접근 제한은 ‘같은 패키지에 있는 클래스’만 접.. 개발일지/자바 2022. 9. 5. 도서관리 시스템 package Test2; public class Book2 { private int bookNum; private String title; private String author; public Book2() {} public Book2(int bookNum, String tilte, String author) { this.bookNum = bookNum; this.title = tilte; this.author = author; } public int getBookNum() { return bookNum; } public void setBookNum(int bookNum) { this.bookNum = bookNum; } public String getTitle() { return title; } pu.. 개발일지/실습Code 2022. 9. 5. 배열 - Array 배열이란? 동일한 자료형(Data Type)의 데이터를 연속된 공간에 저장하기 위한 자료구조이다. 즉, 연관된 데이터를 그룹화하여 묶어준다고 생각하면 된다. 배열의 장점 : 연관된 데이터를 저장하기 위한 변수의 선언을 줄여주며, 반복문 등을 이용하여 계산과 같은 과정을 쉽게 처리할 수 있다. 배열을 정의하는 방법은 크게 2가지가 있다. /* 1번방식 */ int[] intArr = new int[10]; -- 권장 /* 2번방식 */ int intArr2[] = new int[5]; 첫 번째 방법은 데이터들의 값을 알고 있을 때 사용하면 편리하다 인덱스 번호는 첫번째부터 0부터 시작을 한다 밑에 그림에서 보면 알수가있다. 배열의 공간을 지정하지않고 중괄호 안에 데이터를 넣었다. 그럼 strArr1의 배열.. 개발일지/자바 2022. 9. 4. this, Getter, Setter this란 밑에 그림에서 Book이라는 기본 생성자에서 매개변수를 넣었다. 이렇게 매개변수를 넣은 생성자를 사용자정의 생성자라고 한다. 그런데 이 매개변수는 외부에서 접근 하는 변수이다. 이 매개 변수를 통해서 접근제어자의 멤머변수들 private가 붙은 변수들을 말한다 이 멤버변수(필드)에 접근하려면 this키워드를 사용해준다. this는 자기 자신의 주소값을 가리킨다. 자기자신의 주소값의 변수에 매개변수를 넣는다. this를 사용하면, 메서드의 인수나 변수에 필드와 같은 이름을 붙여도 그것들을 구분하여 사용할 수 있다 this는 주로 생성자와 메소드의 매개변수 이름이 필드와 동일한 경우, 인스턴스 멤버인 필드임을 명시하고자 할때 사용된다. 싱글톤 객체를 단 하나만 만들어야 되는 상황을 보장해야 될때 .. 개발일지/자바 2022. 9. 4. 싱글톤 싱글톤이란 외부에서 생성할 수 없고 메모리 영역에 미리 할당합니다.(Static area). 고정된 영역에 할당하므로 딱 정해진 만큼의 메모리만 사용하고, 더는 낭비하지 않습니다. 게다가 Static area에 할당된 객체는 JVM이 종료되는 즉, 프로그램이 종료되기 전까지는 계속 사용할 수 있습니다. 정해진 양의 메모리만 소비하며, 동일한 객체를 다 같이 이용하는 것. 이것이 싱글톤 패턴이 가지는 목적이라고 할 수 있다. 장점: 1. 고정된 메모리 영역을 얻으면서 한번의 new로 인스턴스를 사용하기 때문에 메모리 낭비를 방지 할 수가 있다. 2. 싱글톤으로 만들어진 클래스의 인스턴스는 전역이기 때문에 다른 클래스의 인스턴스들이 데이터를 공유하기 쉽다. 3. 인스턴스가 절대적으로 한 개만 존재하는 것을 .. 개발일지/자바 2022. 9. 1. equals 와 (==)의 차이점 기본적으로 equals 와 (==) 이 둘은 양 쪽에 있는 내용을 비교한 값을 boolean type으로 반환한다는 공통점이 있다. 하지만 이 둘의 차이점이 있다. 1 형태의 차이 단순한 차이는 형태의 차이이다. equals는 메소드이다. 객체끼리 내용을 비교가 가능하다. -- 메소드 == 은 비교를 위한 연산자 이다. -- 연산자 2.주소값 비교와 내용 비교 equals메소드는 비교하고자 하는 대상의 내용 자체를 비교하지만, == 연산자는 비교하고자 하는 대상의 주소값을 비교한다. 주소값이라는 것을 확실하게 집수소, 이메일주소 처럼 확정적으로 정해져서 보여지는 것은 아니지만 대상을 구별할 수 있게 하는 값이라고 알아두면된다. 아래 그림을 보면 쉽게 이해 할 수 있다. a 와 b는 같은 주소값을 가지지만.. 개발일지/자바 2022. 9. 1. 생성자, 생성자의 오버로딩, 접근지정자 생성자란 - 인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드' - 인스턴스 변수의 초기화 또는 인스턴스 생성시 수행할 작업에 사용 - 몇가지 조건을 제외하고는 메서드와 같다. - 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다. * 인스턴스 초기화 - 인스턴스 변수에 적절한 값을 저장하는 것. 생성자의 오버로딩이란 생성자 오버로딩은 매개변수가 다른 생성자를 여러개 만들어내는 것이다. 단 조건이 있는데 같은 클래스 내에서 이루어져야만 하고 선언된 매개변수 타입의 순서와 개수가 달라야 한다. 구분선을 기준으로 위에 세문장은 선언된 매개변수 타입의 개수가 이미 다르기 때문에 순서를 따질 필요없이 생성자 오버로딩이 아주 잘된 모습이다. 하지만 밑에 그림에서 보면 세개의 문장에 구분선 아래 문.. 개발일지/자바 2022. 8. 31. CRUD란 CRUD란 CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말이다. 사용자 인터페이스가 갖추어야 할 기능(정보의 참조/검색/갱신)을 가리키는 용어로서도 사용된다. 밑에 그림과 크게 데이터를 넣고 빼내고 CRUD의 기능 4가지안에서 다 할수가있다 기본적인 게시판을 생각해보자 게시판에 게시글을 작성한다 - Create 게시판에 글자를 조회, 읽기, 인출을 한다 - Read 게시판에 글자를 수정한다 - Update 게시판에 글자를 삭제한다 - Delete CRUD는 DB(DataBase)에서 사용하는 sql문 키워드이다. C = Create(insert) : 말그대로 게시글을 집어넣어라 .. 개발일지/자바 2022. 8. 31. 이전 1 ··· 25 26 27 28 29 30 다음