본문 바로가기

CLASS7

Step20. 람다식(Lamda) □ 람다식 ○ 익명함수(anoymous function)을 이용해서 익명 객체를 생성하기 위한 식 ○ 기본적으로 함수를 만들어 사용한다고 생각하면 됨 ○ 장점 : 코딩 공수가 줄며 편하고 효율적임 예제 1) 인터페이스 생성 package person_test; //인터페이스 생성 public interface LamdaInterface1 { //선언부 public void method(String s1, String s2, String s3); } 예제 2) 생성된 인터페이스를 바탕으로 객체 생성 및 람다식 적용 package person_test; public class LamdaInterface1_Main { public static void main(String[] args) { LamdaInter.. 2023. 9. 26.
Step18. 인터페이스(Interface) □ 인터페이스 ○ 클래스와 달리 객체를 생성할 수 없으며, 클래스에서 구현해야할 작업 명세서임 ○ 클래스에서 인터페이스를 구현하는 단계. 이때 인터페이스는 상세한 내역은 없고 껍데기만 있음 ○ public class 클래스명 + implements + 인터페이스A, 인터페이스B, 인터페이스C ~ ○ 사용이유 : 인터페이스를 사용하는 이유는 많지만 가장 큰 이유는 객체가 다양하 자료형(타입)을 가질 수 있기 때문 예제 1) 인터페이스 2개 생성 package pjt_test; //인터페이스 생성 public interface InterfaceA { //인터페이스상에서 메서드 선언만 할뿐 정의는 하지 않음 //정의는 {}활용 public void funA(); } package pjt_test; //인터페이.. 2023. 9. 25.
Step14. 데이터은닉과 Getter/Setter □ 데이터 은닉 ○ 멤버변수(속성)는 주로 private으로 설정하여, 외부로부터 데이터가 변질되는 것을 막을 수 있음 ○ 매개변수로 받는 데이터를 변질 되지 않도록 public이 아닌 private으로 클래스 변수 지정 ○ 데이터(속성)변질이 우려되는 시나리오 - 급여 프로그램에서 급여 담당자가 실수로 급여액을 잘못 입력할 경우 - 변경될 수 없는 사번이 변경되는 경우 □ Setter, Getter ○ 클래스에서 지정한 속성을 은닉처리 즉, Private으로 지정하면 기존 객체에서 받은 최초의 값을 업데이트 할 수 없음 ○ 이를 위해 Getter와 Setter를 지정하여 데이터은닉처리된 속성에 대한 받은 값이 지속해서 업데이트 될 수 있도록 할 수 있음 예제1) 클래스 파일 + Private으로 클래스.. 2023. 9. 24.
Step12. 생성자와 전역/지역/매개변수, this □생성자 : 객체가 생성될때 호출되는 생성자 (1) 디폴트생성자 : 객체가 생성될 때 가장 먼저 호출되는 생성자로, 만약 개발자가 명시하지 않아도 컴파일 시점에 자동 생성됨 예제 1) 클래스 생성 package pjt_test; public class Newer_Class { //Newer_Class 클래스의 생성자 지정 public Newer_Class() { System.out.println("나는 생성자"); } } 예제 1-1) 객체 생성 package pjt_test; public class Newer_Class_Main { public static void main(String[] args) { //클래스에 대한 객체 생성과 동시에 생성자 바로 출력됨 Newer_Class newer_Class.. 2023. 9. 24.
Step11. 객체와 메모리 □ 메모리에서 객체는 동적생성됨 ○ 객체는 메모리에서 동적으로 생성되며, 객체가 더 이상 필요없게되면 GC(Garbage Collector)에 의해서 제거됨 * GC로 인하여 효율적인 메모리 관리 및 유지가 가능 ○ 객체가 생성되면 메모리에 저장됨과 동시에 객체위치를 가르키는 즉, 레퍼런스 주소 또한 메모리에 저장됨 □ 자료형이 같아도 다른객체임 ○ 클래스가 같다고 객체 또한 같은 것은 아님. 출력주소를 보면 다른것을 알 수 있음. □ null 과 NullPointException ○ 레퍼런스에 Null이 저장되면 객체의 연결이 끊기며, 더 이상 객체를 이용할 수 없음 예제1) 클래스 생성 package pjt_test; public class ObjectClass { //클래스 생성자 public Ob.. 2023. 9. 22.
Step10. 객체 - 메서드와 접근자 □메서드 = 접근자(public or private + 반환형(void or 타입) + 메서드명(매개변수) ○ 메서드도 변수와 같이 선언 및 정의 후 필요시에 호출해서 사용 ○ 이름은 같고 매개변수의 개수 또는 타입이 다른 매서드를 만들수 있음 □접근자 ○ 매서드를 호출할때 접근자에 따라서 호출을 제한할 수 있음 ○ public : 외부호출 가능 ○ private : 외부호출 제한, 클래스 내부에만 사용할 수 있음 □예제1) 클래스 및 메서드 지정 + 메서드에 받을 매개변수 지정 + 접근자(Private & Public) package person_test; public class Mathod { //클래스 속성 지정 public String name; public String gender; public.. 2023. 9. 22.
Step9. 객체지향 프로그램 □객체 : 세상에 존재하는 모든것을 뜻하며 프로그래밍에서 속성과 기능을 가지는 프로그램 단위. 특정한 목적에 의하여 만들어짐. 사용중인 객체는 절대 건들지 않음. ex 1)현실세계 ▶ 사람 → 속성: 키, 몸무게 등 / 기능 : 의사, 개발자 등 ex 2)현실세계 ▶ 자동차 → 속성: 바퀴, 엔진 등 / 기능 : 전진, 후진 등 ex 3)객체(프로그램) ▶ 날씨 프로그램 → 속성: 온도, 미세먼지 등 / 기능 : 날씨예보 ex 4)객체(프로그램) ▶ 사칙연산 프로그램 → 속성: +, -, *, / 등 / 기능 : 연산기능 □클래스 : 객체를 생성하기 위한 틀로 모든 객체는 클래스로부터 생성됨 ex)그렌저(속성: 색상, 바퀴 등 / 기능: 배기량 등) - 복제 - 그렌저1[속성: 색상(블랙), 바퀴(일반).. 2023. 9. 22.