프로그래밍 언어/JAVA7 추상 클래스(Abstract Class) 와 인터페이스(Interface) 추상 클래스 (Abstract Class) 란? - 한 개 이상의 추상 메소드를 가지는 클래스 * 추상메소드 : 내용 구현(정의)을 하지 않고 선언만 한 메소드 추상 클래스 특징 - class 앞에 abstract 예약어를 이용해서 정의 - 추상 메소드는 리턴 타입 앞에 abstract라는 키워드를 붙여야 함 - 객체(인스턴스) 생성이 불가능 (왜? 아직은 실체성이 없고 구체적이지 않기 때문) - 자식 클래스에서 추상 메소드의 구현을 강제하도록 합니다. - Is-a (~이다) 추상 클래스 사용목적 - 필드와 메소드 이름을 통일하여 유지보수성을 높이고 통일성을 유지 - 소스 수정 시 다른 소스의 영향도를 적게 가져가면서 변화에는 유연하게 만들기 위해 사용 - 규격에 맞게 소스가 구현되어 있기 때문에 해당 .. 2021. 7. 7. 오버 로딩(Overloading)과 오버 라이딩(Overriding) 오버 로딩(Overloading) 이란? - 한 클래스 내에 메소드의 이름이 동일하면서 리턴 타입 또는 매개변수를 다르게 정의하는 방법 오버 로딩 조건 1. 메소드 이름이 같아야 한다. 2. 리턴 타입에 상관없이 매개변수(파라미터) 개수 또는 자료형이 반드시 달라야 한다. 예제 class TestValue { void add(){ System.out.println("매개변수가 없는 메소드"); } void add(int a){ System.out.println("매개변수가 "+a+"인 메소드"); } void add(int a, int b){ System.out.println("매개변수가 "+a+"와 "+b+"인 메소드"); } } public class Test { public static void m.. 2021. 7. 3. Call by Value와 Call by Reference 란? 개요 메소드에 전달되는 변수의 데이터 타입에 따라서 메소드 호출 방식이 달라집니다. 메소드를 호출하는 방식으로는 Call By Value와 Call By Reference 2가지가 있습니다. Call by Value 란? - 메소드에 값을 전달할 때, 변수의 값을 복사해서 메소드에 전달하는 방식 특징 - 저장소를 공유하지 않음 - 기본 자료형 (int, short, long, float, double, char, boolean) - 값을 복사해서 전달했으므로 받은 인자의 값을 변경하더라도 변경되지 않음. 장점 - 복사하여 처리하기 때문에 안전하다. 원래의 값이 보존이 된다. 단점 - 복사를 하기 때문에 메모리가 사용량이 늘어난다. 예시 class TestValue { int x; } public clas.. 2021. 6. 29. 객체 지향 프로그래밍(OOP)란? OOP 란? Object Oriented Programing의 줄임말이며, 현실세계의 일부분을 객체로 만들어서 프로그래밍하는 방법 클래스란? 현실세계에 존재하는 물체에 대한 다양한 특징과 기능을 가진 설계도 객체란? '설계도(클래스)를 실체화한 것'입니다. - 인스턴스화: 클래스로부터 객체를 만드는 과정 - 인스턴스: 만들어진 객체를 그 클래스의 인스턴스 객체 지향 프로그래밍(OOP) 특징 1. 캡슐화 (Encapsulation) - 변수와 메서드를 하나의 단위로 묶어서 클래스로 만드는 것 - 외부에 노출할 필요가 없는 정보들은 은닉 (정보은닉) 세부 구현을 숨기는 목적은 클래스 내부 구현의 응집도(cohesion)를 높이고 외부 다른 클래스와의 결합도(coupling)을 낮추는 데 있습니다. 2. 상속.. 2021. 6. 22. 이전 1 2 다음