개발지 (80) 썸네일형 리스트형 [0731] 자바 객체지향 프로그래밍 심화 (추상화) #추상화 - 핵심은 공통성과 본질을 모아 추출하는 것. - 객체의 공통적인 속성과 기능을 추출하여 정의하는 것을 의미한다. - 기존 클래스들의 공통적인 요소들을 뽑아서 상위 클래스를 만들어 내는 것. - 추상 클래스와 인터페이스 문법 요소를 사용해서 추상화를 구현한다 #abstract 제어자 - 클래스와 메서드 앞에 붙여 사용한다. 제어자를 사용하면 각각 추상 메서드, 추상 클래스가 된다. - 추상 메서드, 추상 클래스는 미완성 메서드, 미완성 클래스라고 하며, 바디가 완성되기 전까지 객체 생성이 불가능하다. #추상 클래스 - 메서드 시그니처만 존재하고 바디가 선언되어 있지 않은 추상 메서드를 포함한 미완성 클래스. - 객체 생성 불가능 - 상속 관계에 있는 새로운 클래스를 작성하는 데 유용하다. 상위 .. [0730] 7월 5주 주간학습 회고 #캡슐화 - 객체 안의 속성과 기능을 외부로부터 분리 - 클래스의 멤버로 다른 클래스 타입의 참조변수를 선언하는 것. - getter, setter 메서드로 캡슐화 한다. #패키지 - 목적을 공유하는 클래스와 인터페이스를 패키지화한다. - 같은 이름의 클래스라도 다른 패키지라면 충돌하지 않는다. - 기본 패키지가 존재한다. #import문 - 다른 패키지의 클래스를 사용하기 위해 기존 패키지에 import하는 것. - import문을 통해 타패키지를 등록하지 않으면 해당 클래스의 멤버들을 사용할 수 없다. 사용할 때마다 매번 패키지.클래스.메서드 순으로 입력하여 사용해야한다. #제어자 - 클래스, 필드, 메서드, 생성자 등에 부가적인 의미를 부여. - 접근 제어자와 기타 제어자가 존재. 접근 제어자는 하.. [0723] 7월 4주 주간학습 회고 이번주부터 주간학습 회고를 주말에 진행해보려고 한다. 무리하지 않기 위해서 주말엔 공부를 많이 하지 않았지만 복습을 할 시간이 부족한 거 같아 앞으로는 한 주 동안 공부한 내용을 복습 겸 블로깅할 생각이다. 7월 4주는 일정이 있어, 20-21일은 많은 공부를 하지 못한 게 아쉽다. #객체지향프로그래밍 1. 객체지향프로그래밍 - 프로그래밍에서 각각의 속성과 기능을 가진 객체단위로 나눠 프로그래밍하는 방법이다. - 프로그램 개발 및 유지 보수에 용이하다. - 객체지향프로그래밍의 특징은 캡슐화, 상속, 다형성이 있다. #클래스와 객체 - 클래스는 객체를 만드는 설계도, 틀이다. - 객체는 클래스에 정의된대로 생성된다. - 인스턴스는 클래스에 의해 생성된 객체를 말한다. (객체 생성 과정을 인스턴스화라고 부른.. [0728] 자바 객체지향 프로그래밍 심화 (다형성) #다형성 - 한 타입의 참조 변수를 여러 타입의 객체가 참조할 수 있도록 만든 것. class Sports { public void sportsInfo() { System.out.println("스포츠는 즐겁습니다."); } } class Soccer extends Sports { public void sportsInfo() { System.out.println("축구는 즐겁습니다."); } } class BasketBall extends Sports { public void sportsInfo() { System.out.println("농구는 즐겁습니다."); } } public class SportsTest { public static void main(String[] args) { Sports sp.. [0727] 자바 객체지향 프로그래밍 심화 (캡슐화) #캡슐화 - 객체 안의 속성과 기능을 캡슐로 만들어 데이터를 외부와 분리한다. - 클래스의 멤버로 다른 클래스 타입의 참조변수를 선언하는 것이다. - 내부에서 사용되는 데이터의 외부 노출을 막고 보호한다. - 핵심적인 수단은 접근제어자와 getter, setter 메서드이다. #패키지 - 특정한 목적을 공유하는 클래스와 인터페이스의 집합. - 클래스와 인터페이스를 묶어 효율적으로 관리하기 위해 사용. - 같은 이름의 클래스라도 패키지가 다르면 충돌하지 않음. - 자바의 기본 패키지에는 java.lang(기본 클래스), java.util(확장 클래스), java.io(입출력 클래스) 등이 있다. - 패키지 선언은 명령문을 클래스 혹은 인터페이스의 소스 파일에 추가한다. package 패키지이름; - imp.. [0721] 자바 객체지향 프로그래밍 심화 (상속2) #메서드 오버라이딩 : 상위 클래스로부터 상속받은 메서드와 동일한 이름의 메서드를 재정의 하는 것. public class Main { public static void main(String[] args) { Drum drum = new drum(); Guitar guitar = new guitar(); Piano piano = new piano(); drum.play(); // 오버라이딩된 메소드 durm.play(drum); // 오버로딩된 메소드 guitar.play(); // 오버라이딩된 메소드 guitar.play(guitar); // 오버로딩된 메소드 piano.play(); } } class Instrument { // 메서드 오버로딩 : 한 클래스 내에서 매개변수가 다른 void play(.. [0720] 자바 객체지향프로그래밍 (상속1) #상속 : 기존의 클래스를 재활용하여 기능을 추가하거나 재정의한 새로운 클래스를 작성하는 것을 의미한다. - 상위 클래스의 멤버를 하위 클래스와 공유할 수 있다. - 하위 클래스의 멤버 개수는 항상 상속받은 상위 클래스의 멤버 개수 이상이다. - 상속 받는 것을 상위 클래스로부터 '확장'되었다고 말하기도 한다. - 상속의 특징 ▪ 다형적 표현이 가능하다. (한 객체가 다양하게 표현될 수 있는 정도) ▪ 상위 클래스의 속성과 기능을 하위 클래스에서 사용할 수 있다. ▪ 자바에서는 단일 상속만 허용된다. class Scoccer { String name; int age; void pass(){ System.out.println("패스를 합니다."); }; void shoot(){ System.out.prin.. [0719] 자바 객체지향프로그래밍 2 (생성자, 내부클래스) #생성자 : 객체를 생성하는 역할을 하는 클래스의 구성 요소. 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드이다. - 인스턴스를 생성하는 것은 new 키워드이다. - 생성자는 인스턴스 변수들을 초기화하는 메서드이다. - 생성자도 오버로딩이 가능하다. (하나의 클래스에 여러 개의 생성자가 있을 수 있다.) public class ExampleofConstructor { public static void mian(String[] args) { Constructor constructor1 = new Constructor(); Constructor constructor2 = new Constructor("Tistory Blog"); Constructor constructor3 = new Construct.. [0718] 자바 객체지향프로그래밍 2 (필드와 메서드) #필드 :'클래스에 포함된 변수'를 의미. 객체의 속성을 정의할 때 사용된다. -변수의 종류 선언 위치 이름 static 사용 사용메모리 초기화 클래스 영역 클래스 변수 (cv, class variable) O 메서드 자동초기화 인스턴스 변수 (iv, instance variable) X 힙 메서드 영역 지역 변수 (lv, local variable) O 스택 초기화 없이 사용시 오류. (1)클래스 변수 : 공통저장공간 공유.(= 메서드 영역 메모리 사용) static 키워드를 사용하여 모든 인스턴스에서 공유하는 값으로 사용된다. (2)인스턴스 변수 : 인스턴스의 각각의 고유한 속성을 저장하기 위한 변수. (3)지역 변수 : 메서드 내 선언. 메서드 내에서만 사용 가능. #static : 클래스의 멤버에.. [0717] 자바 객체지향프로그래밍 1 (클래스와 객체) #왜 객체지향프로그래밍인가? 객체는 실재하는 대상(Object)를 뜻한다. 프로그래밍에서의 객체는 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미한다. 객체지향프로그래밍이란 프로그램 안에서 각각의 기능과 역할을 가진 객체들이 상호작용을 통해 프로그램의 기능을 수행하는 프로그래밍 방법론을 지칭한다. 객체지향 프로그래밍을 지향할 때, 각각의 속성과 기능을 가진 객체들은 다른 프로그램에서 사용되거나 수정될 수 있어 프로그램 개발 및 유지 보수에 용이하고, 객체를 통한 데이터 관리로 손실 없는 데이터를 얻을 수 있다. 객체를 생성하기 위해 자바에서는 클래스, 클래스가 만들어지는 필드와 메서드, 생성자를 사용한다. #클래스와 객체 ▪클래스 :객체를 정의한 '설계도' 또는 '틀'과 같다. 그래.. 이전 1 ··· 4 5 6 7 8 다음