Java

Java

[Java] Comparator와 Comparable - 경험을 기록하는

Comparator와 Comparable객체 정렬에 필요한 메서드(정렬기준 제공)를 정의한 인터페이스기본적으로 정렬(자리바꿈)은 대상과 기준이 필요하다.Comparator : 기본 정렬기준 외에 다른 기준으로 정렬하고자 할 때 사용Comparable : 기본 정렬기준을 구현하는 데 사용public interface Comparator { int compare (Object o1, Object o2); // o1, o2 두 객체를 비교 boolean equals (Object obj); // equals를 오버라이딩하라는 뜻}public interface Comparable { int compareTo (Object o); // 주어진 객체 (o)를 자신과 비교}compare()와 comp..

Java

좋은 객체 지향 설계의 5가지 원칙(SOLID)

학습 목표왜?? 언제?? 어떻게?? 사용하는가??SOLID의 정확한 의미를 파악SOLID를 따르며 설계를 하면 좋은 점SOLID클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리SRP: 단일 책임 원칙(Single Responsibility Principle)OCP: 개방 폐쇄 원칙(Open/Closed Principle)LSP: 리스코프 치환 원칙(Liskov Substitution Principle)ISP: 인터페이스 분리 원칙(Interface Segregation Principle)DIP: 의존관계 역전 원칙(Dependenxy Inversion Principle)SRP 단일 책임 원칙(Single Responsibility Principle)한 클래스는 하나의 책임만 가져..

Java

객체지향의 다형성에 대해(간단 설명)

학습목표 객체지향의 의미 장점 객체지향 - 다형성 역할과 구현을 분리 예시 1 - 자동차 자동차 역할이 있다. 구현 - 아반떼, K3, 테슬라 모델 3 운전면허를 가진 사용자는 아반떼를 타다가 k3를 타도 새로 공부를 할 필요가 없다. 운전을 하던 대로 하면 된다. 자동차의 종류가 어떤 것 인지는 중요하지 않다. 예시 2 - 공연(로미오와 줄리엣) 로미오 역할과 줄리엣 역할이 있다. 구현 - 로미오, 줄리엣을 공연하는 사람 로미오와 줄리엣 역할을 연기할 수 있는 사람이라면 누가 그 역할을 하던지 중요하지 않다. 다른 예시 키보드, 마우스, 세상의 표준 인터페이스들 정렬 알고리즘(어떤 알고리즘을 사용하던 중요 X) - 기능만 똑같다면 더 나은 성능의 알고리즘으로 교체해도 무관하다. 할인 정책 로직 정리 역..

Java

Java 프로그래밍 - 접근 제어 지시자(access modifier)와 정보은닉(information hiding)

접근 제어 지시자(access modifier) 클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드 private : 같은 클래스 내부에서만 접근 가능 (외부 클래스, 상속 관계의 클래스에서도 접근 불가) 가장 폐쇄적 default : 같은 패키지 내부에서만 접근 가능 (상속 관계여도 패키지가 다르면 접근 불가) protected : 같은 패키지나 다른 패키지의 상속관계의 클래스에서 접근 가능하고 그 외 외부에서는 접근할 수 없음 public : 클래스의 외부 어디서나 접근할 수 있음(접근 제한이 없다) public > protected > (default) > private get() / set() 메서드 사용하는 이유 외부에서 멤버변수에 직접 접근하여 값을..

Java

Java 프로그래밍 - 연습 01(객체 구현하기)

다음 설명에 해당되는 객체를 구현하고 해당 정보를 출력해 보세요 키가 184 이고 몸무게가 78 킬로인 남성이 있습니다. 이름은 John 이고 나이는 29세입니다. public class Person { public int height; public int weight; public String sex; public String name; public int age; public Person(int height, int weight, String sex, String name, int age) { this.height = height; this.weight = weight; this.sex = sex; this.name = name; this.age = age; } public String showPer..

Java

Java 프로그래밍 - 참조 자료형 변수

참조 자료형 변수의 자료형 클래스형으로 변수를 선언 기본 자료형은 사용하는 메모리의 크기가 정해져 있지만, 참조 자료형은 클래스에 따라 다름 참조 자료형을 사용할 때는 해당 변수에 대해 생성하여야 함 (String 클래스는 예외적으로 생성하지 않고 사용할 수 있음) 참조 자료형 정의하여 사용하기 학생이 수강한 과목들에 대한 성적을 산출하기 위한 경우 학생 클래스 속성에 과목이 모두 있으면 불합리 학생(Student)과 과목(Subject)에 대한 클래스를 분리하여 사용하고 Subject 클래스를 활용하여 수강한 과목들의 변수의 타입으로 선언

Java

Java 프로그래밍 - 생성자 오버로딩(overloading)

생성자 정의하기 생성자를 구현해서 사용할 수 있다. 클래스에 사용자가 생성자를 구현할 경우 기본 생성자(default Constructor)는 제공되지 않는다. 클라이언트 코드에서 여러 생성자 중 필요에 따라 호출해서 사용할 수 있다. 오버로딩(overloading) 이름이 같은 메서드에 매개변수의 개수 또는 타입을 다르게 해서 정의하는 것 public class UserInfo { public String userId; public String userPassWord; public String userName; public String userAddress; public String phonNumber; // 기본 생성자를 정의(매개변수와 타입이 없다.) public UserInfo() {} // 생성..

Java

Java 프로그래밍 - 생성자(constructor)

생성자(constructor) 생성자 기본 문법([

Java

Java 프로그래밍 - 인스턴스 생성과 힙 메모리

인스턴스(instance) new 키워드를 사용하여 인스턴스를 생성 ex) Student student = new Student(); 클래스는 객체의 속성을 정의, 기능 구현을 해놓은 공간 실제 클래스 기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가지게 된다. ex) Student 클래스에서 생성된 각각의 인스턴스는 각자 다른 학번, 이름, 주소를 가진다. ⁋힙 메모리 생성된 인스턴스는 동적 메모리(heap memory)에 할당된다. C와 C++에서는 사용자가 free() or delete를 이용하여 사용자가 해제시켜야 한다. JAVA에서는 Gabage Collector 가 주기적으로 사용하지 않는 메모리를 수거한다. 하나의 클래스로부터 여러 개의 인스턴스가 생성되고 각각 다른 메모리 주..

Java

Java 프로그래밍 - 함수와 메서드

함수란(function) 하나의 기능을 수행하는 일련의 코드 구현된(정의된) 함수는 호출로 사용할 수 있다. / 기능이 끝나면 원래의 코드로 제어가 반환된다. 함수로 구현된 기능을 여러 곳에서 재사용이 가능 함수 정의하기 함수는 이름, 매개변수(parameter), 함수 몸체(body)로 구성된다. // 반환이 없는 함수는 함수이름 앞에 void를 붙인다. // void add(); int add(int num1, int num2) { int result; result = num1 + num2; return result; }함수 구현하기 예제 public class FunctionTest { // 매개변수 2 개를 받아서 더하는 함수 선언 public static int addNum(int num1, i..

여행하는 개발자(SOO)
'Java' 카테고리의 글 목록