컴퓨터/Java
-
람다식컴퓨터/Java 2019. 9. 4. 16:20
-람다식이란 익명함수(anonymous function)를 이용해서 익명 객체를 생성하기 위한 식 인터페이스에 선언만 해놓고 따로 클래스 구현을 하지 않아도 람다식으로 사용가능 과거 C와 같은 함수 지향 프로그래밍, - 람다식 구현 package lec11Pjt001; public interface LambdaInterface1 { public void method(String s1, String s2, String s3); } package lec11Pjt001; public interface LambdaInterface2 { public void method(String s1); } MainClass.java (질문) 왜 인터페이스 객체에 바로 람다식을 대입하는 걸까. 그리고 이 객체.method(인..
-
클래스 05: 추상클래스컴퓨터/Java 2019. 9. 4. 15:45
출처 : 자바프로그래밍 입문(인프런) HeadFirst Design Pattern 인터페이스와 비슷한 형태로 구체화되지 않은 멤버를 이용해서 클래스를 만들 수 있어 - 추상클래스(abstract class)란 클래스의 공통된 부분을 뽑아서 별도의 클래스로 만들어 놓고 이것을 상속해서 사용한다. - 추상 클래스의 특징 1) 멤버변수, 생성자, 메서드, 추상 메서드를 가질 수 있다. 2) abstract 클래스를 상속하기 위해서는 extends를 이용한다. 3) abstract 메서드를 가지며 상속한 클래스에서 반드시 구현해야 한다. ( 인터페이스와 비슷 ) - 추상클래스 구현 package lec11Pjt001; public abstract class AbstractClassEx { int num; Str..
-
클래스 04: 인터페이스컴퓨터/Java 2019. 9. 4. 14:02
- 디자인 원칙 구현이 아닌 인터페이스에 맞춰서 프로그래밍한다. -> 꼭 인터페이스가 아니더라도, 실제 실행시에 쓰이는 객체가 코드에 의해서 고정되지 않도록 어떤 상위 형식에 맞춰서 프로그래밍함으로써 다형성을 활용해야 한다. 변수를 선언할 때는 보통 추상 클래스나 인터페이스 같은 상위형식으로 선언해야 한다. - 인터페이스란 클래스와 외형은 비슷하나 객체 생성 불가, 메서드 호출 및 기능 수행 불가 클래스에서 구현해야 하는 작업 명세서 cf) class로부터 new 키워드로 생성, 레퍼런스로 접근해서 사용했음 class에서 인터페이스를 구현- 인터페이스가 가지고 있는 기능, 상세한 내용 ex. FlyBehavior라는 인터페이스를 FlyWithWings와 FlyNoWay라는 클래스로 각각 구현할 수 있다...
-
클래스 03: 내부 클래스와 익명 클래스컴퓨터/Java 2019. 9. 4. 08:55
출처 : 자바 프로그래밍 입문 강좌(인프런) - 내부 클래스 클래스 안에 또다른 클래스를 선언하는 것 두 클래스의 멤버에 쉽게 접근할 수 있다. 코드가 장황해지기 때문에 자주 사용하지 않는다. package lec11Pjt001; public class OuterClass { int num = 10; String str1 = "java"; static String str11 = "world"; // 생성자 public OuterClass() { System.out.println("OuterClass constructor"); } // 내부클래스1 class InnerClass() { int num = 100; String str2 = str1; public InnerClass() { System.out...
-
상속컴퓨터/Java 2019. 9. 3. 23:43
출처 : 자바 프로그래밍 입문(인프런) - 필요성 기존의 검증된 class를 이용해서 빠르고 쉽게 새로운 class를 만들 수 있다. ex. extends를 이용해서 상속한다 package testPjt; public class ChildClass extends ParentClass{ public ChildClass() { System.out.println("-- ChildClass constructor --"); } public childFun() { System.out.println(" -- childFunc() --"); } } package testPjt; public class ParentClass { public ParentClass() { System.out.println("--- Paren..
-
데이터 은닉컴퓨터/Java 2019. 9. 3. 11:00
출처 : 자바프로그래밍 입문(인프런) 데이터 은닉 : 객체가 가지고 있는 데이터가 외부로부터 변질되지 않게 보호하는 방법 - 멤버변수의 private 설정 어떤 클래스의 속성이 public이라면? 외부에서 계좌 소유주 이름 바꾸는 등 데이터 변경 가능해 멤버 변수(속성)는 주로 private으로 설정해서, 외부로부터 데이터가 변질되는 것을 막는다. - setter, getter 멤버변수를 외부에서 변경할 수 있도록 하는 메서드 package testPjt; public class Student { private String name; private int score; public Student(String n, int s) { this.name = n; this.score = s; } public voi..
-
패키지와 static컴퓨터/Java 2019. 9. 3. 08:48
출처 : 자바프로그래밍 입문(인프런) class 파일을 효율적으로 관리하기 위한 방법 객체 간에 속성 또는 기능 공유 - 패키지 폴더를 만들어서 클래스 파일을 관리하는 디렉토리 패키지 이름은 클래스들을 대표할 수 있는 이름으로 한다 잘 만든 패키지의 경우 다른 곳에 이식해서 사용할 수 있기 때문에 unique한 이름으로 짓는다. 도메인을 거꾸로 해서. ex. kr.co.회사이름 - import import java.util.ArrayList; ex. com.java.employee.Employee; -> com.java.employee 패키지에서 Employee 클래스 불러온다 com.java.dailyJournal.* -> 해당 패키지에 있는 모든 클래스를 import하겠다. - static 필드와 메..
-
생성자, 소멸자컴퓨터/Java 2019. 9. 3. 08:20
- 디폴트 생성자 객체가 생성될 때(변수에 할당 말고 new로 생성시) 가장 먼저 호출되는 생성자로, 만약 개발자가 명시하지 않아도 컴파일 시점에 자동 생성된다. package lec11Pjt001; public class ChildClass { public String name; public String gender; public int age; // 디폴트 생성자 public ChildClass() { System.out.println(" --- ChildClass constructor --- "); } // 디폴트 생성자가 없는 경우 실행되는 생성자 public ObjectEx() { } } - 사용자 정의 생성자 디폴트 생성자 외에 특정 목적에 의해서 개발자가 만든 생성자, 매개변수에 차이가 있다..