Object-oriented programming System(OOPs)은 데이터와 메소드가 포함 된”객체”의 개념을 기반으로하는 프로그래밍 패러다임입니다. 객체 지향 프로그래밍의 주요 목적은 프로그램의 유연성과 유지 보수성을 높이는 것입니다. 객체 지향 프로그래밍을 함께 제공하는 데이터와 행동(방법)와의 단일 위치(객체)를 쉽게 만드는 방법을 이해하는 프로그램을 작동합니다. 우리는 당신이 어떤 어려운 이해 아차 개념에 직면하지 않도록 자세히 아차의 각각의 모든 기능을 다룰 것입니다.,
OOPs 개념 테이블의 내용을
- 목적은 무엇입
- 는 무엇입 class
- 생성자에서 Java
- 객체 지향 프로그래밍 기능을
- 추상화
- 캡슐화
- 상속
- 다형성
- 추상 클래스와는 방법
- 인터페이스에서 Java
목적은 무엇입
개체가 번들의 데이터와 행동(종종으로 알려진 방법).
객체에는 상태와 동작이라는 두 가지 특성이 있습니다.,
의 예국 및 동작
예제 1:
개체:집
상태:주소,색상,지역
동작을 열고 문을 닫고 문
고 있었다면 난 그렇게 쓰기를 기반으로 클래스에 상태 및 행동의 집입니다. 나는 다음과 같이 할 수있다:상태는 인스턴스 변수로 표현 될 수 있고 동작은 클래스의 메소드로 표현 될 수있다. 이 가이드의 다음 섹션에서 수업을 만드는 방법을 살펴 보겠습니다.
class House { String address; String color; double are; void openDoor() { //Write code here } void closeDoor() { //Write code here } ... ...}
참고:우리가 본 바와 같이,국가 및 행동의 개체,표현할 수 있는 변수와 방법 클래스에서 각각합니다.,
적 특성의 개체:
경우에 당신은 그것을 찾을 이해하기 어려운 추상화하고 캡슐에 넣기,걱정하지 않으로 덮여 있는 이러한 주제에 세부사항으로 예에는 다음 섹션이 안내합니다.
- 추상화
- 캡슐화
- 메시지를 전달
추출 추세를 보이는 곳에서만”관련”데이터와”숨”불필요한 개체의 세부 사용자.
캡슐화:캡슐화는 단순히 의미하는 바인딩체 상태(분야)및 행동(방법)함께. 클래스를 만드는 경우 캡슐화를하고 있습니다.,
메시지 전달
자체적으로 단일 객체는 그다지 유용하지 않을 수 있습니다. 응용 프로그램에는 많은 개체가 포함되어 있습니다. 한 객체는 해당 객체에 메소드를 호출하여 다른 객체와 상호 작용합니다. 메소드 호출이라고도합니다. 아래 다이어그램을 참조하십시오.
것은 클래스에서는 죄송한 개념
A class 으로 간주 될 수 있습 청사진을 사용하여 만들 수 있는 많은 개체습니다. 예를 들어,여기서 우리는 등Website
는 데이터는 두 개의 구성원들(으로도 알려진 분야,인스턴스의 변수와 개체국)., 이것은 단지 청사진,그것을 나타내지 않는 모든 웹 사이트,그러나 사용하여 이것을 만들 수 있습니다 웹 사이트 개체(또는 인스턴스)나타내는 웹사이트입니다. 우리는 두 개의 객체를 만들었고 객체를 만드는 동안 생성자를 사용하여 객체에 별도의 속성을 제공했습니다.
출력:
beginnersbook 5google 18
무엇이 생성자
생성자를 같은 방법이지만 그것은 사실이지 않은 방법입니다. 그것은 이름이 클래스 이름과 동일하며 어떤 값도 반환하지 않습니다., 당신이 볼 수 있어야합니다 이 문서에서 거의 모든 프로그램 공유 위
MyClass obj = new MyClass();
을 보면서 오른쪽의 문은,우리는 우리의 기본 생성자를 호출하 classmyClass
하는 새로운 객체를 만들(또는 인스턴스).
우리는 또한 매개 변수를 생성자에서 같은 생성자로 알려진 매개 변수화 생성자입니다.,
예제의 생성자
출력:
Chaitanya 30Steve 56
객체 지향 프로그래밍 기능
이러한 네 가지 특징은 주요 죄송 개념을 이해하는 것을 배워야한 객체 지향 프로그래밍에서 Java
추상화
추세를 보이는 곳에서만”관련”데이터와”숨” 불필요한 개체의 세부 사용자., 예를 들어,당신은 로그인하는 귀하의 은행 계좌 당신은 당신의 온라인 입력하 user_id 와 비밀번호를 누르면 로그인할 때 어떤 일을 눌러 로그인이 어떻게 입력을 서버로 전송되는 데이터,어떻게 얻는 확인되는 모든 상에서 당신입니다. 여기에 대해 자세히 읽어보십시오:Java 의 추상화.
캡슐화
캡슐화는 단순히 객체 상태(필드)와 동작(메소드)을 함께 묶는 것을 의미합니다. 클래스를 만드는 경우 캡슐화를하고 있습니다.,
Java 의 캡슐화 예제
How to
1)클래스 외부에서 직접 액세스 할 수 없도록 인스턴스 변수를 비공개로 만듭니다. 클래스의 메소드를 통해서만 이러한 변수의 값을 설정하고 얻을 수 있습니다.
2)클래스의 getter 및 setter 메서드를 사용하여 필드의 값을 설정하고 가져옵니다.
출력:
No Of Employees: 5613
클래스EncapsulationExample
을 사용하는 개체의 클래스가EmployeeCount
지 않을 것을 얻을 수 있 NoOfEmployees 직접 있습니다., 동일한 클래스의 setter 및 getter 메서드를 사용하여 값을 설정하고 가져와야합니다.
그 혜택은 무엇입의 캡슐화에 java 프로그래밍
만,일부 지점에서의 시간을 변경하려는 경우 구현에 대한 세부적인 사항은 클래스의 EmployeeCount 수 있습니 자유롭게 이렇게 영향을 주지 않고는 클래스가 그것을 사용하고 있습니다.
상속
한 클래스가 다른 클래스의 속성과 기능을 획득하는 프로세스를 상속이라고합니다., 상속 제공하는 아이디어의 코드 재사용 및 각 하위 클래스 정의 기능만 있는 독특한 그의 나머지 기능을 수 있는 상속에서 부모 클래스입니다.
- 상속은 공통 데이터 멤버와 메소드를 확장하여 기존 클래스를 기반으로 새 클래스를 정의하는 프로세스입니다.
- 상속을 통해 코드를 재사용 할 수 있으며 java 응용 프로그램의 재사용 성을 향상시킵니다.
- 부모 클래스를 기본 클래스 또는 수퍼 클래스라고합니다. 아동 클래스를 확장하는 기본 클래스라는 파생된 클래스 또는 하위 클래스 또는 어린이 클래스입니다.,
참고:의 가장 큰 장점이 상속가는 코드에서는 기본 클래스지 않은 다시 작성에 아동 클래스입니다.
기본 클래스의 변수와 메소드는 자식 클래스에서도 사용할 수 있습니다.
구문:Java 의 상속
클래스를 상속하려면 extensions 키워드를 사용합니다. 여기서 클래스 A 는 자식 클래스이고 클래스 B 는 부모 클래스입니다.
class A extends B{}
상속 예
이 예제에서,우리는 부모 등Teacher
과 아동 클래스를MathTeacher
., MathTeacher
클래스에서 우리는 현재 클래스에 이미 존재하는 동일한 코드를 작성할 필요가 없습니다. 여기서 우리는 우리 대학 이름 지정 및가()메소드는 일반적인에 대한 모든 교사,따라서 MathTeacher 하지 않는 클래스를 작성해야 하는 이 코드는 일반적인 데이터 구성원과 방법을 수 있는 상속에서Teacher
클래스입니다.,
출력:
BeginnersbookTeacherMathsTeaching
참고:다단계 상속받을 수 있 Java 지만 여러 상속
유형의 기업
하나의 상속인 의미를 부모와 자식 등 관계를 클래스를 확장하는 다른 클래스입니다.
다단계 상속:클래스가 자식 클래스를 확장하는 자식 및 부모 클래스 관계를 나타냅니다. 예를 들어 클래스 a 는 클래스 B 를 확장하고 클래스 B 는 클래스 C 를 확장합니다.,
계층 적 상속:둘 이상의 클래스가 동일한 클래스를 확장하는 자식 및 부모 클래스 관계를 나타냅니다. 예를 들어,클래스 B 확장 클래스고 클래스 C 확장 클래스 A.
여러 기업을 말하는 개념의 하나의 클래스 자세한 정보를 이용할 수 있습니다.하나의 클래스는 의미,아동 클래스에는 두 가지 부모 클래스입니다. Java 는 다중 상속을 지원하지 않으므로 여기에서 자세히 읽어보십시오.
Small Talk,Java,C#과 같은 새로운 OO 언어의 대부분은 다중 상속을 지원하지 않습니다. 다중 상속은 C++에서 지원됩니다.,
다형성
다형성은 객체 지향 프로그래밍할 수 있는 기능을 수행하기 위해 우리는 하나의 작업에서 다른 방법이 있습니다. 예를 들어,말할 수 있습 우리는 등Animal
있는 방법을animalSound()
,여기서 우리는 줄 수 없 구현하는 이 방법으로 우리가 알지 못하는 동물의 클래스를 확장할 것 이라고Animal
클래스입니다., 그래서,우리는 이 방법은 추상적인 like this:
public abstract class Animal{ ... public abstract void animalSound();}
이제 우리는 두 동물의 클래스가Dog
및Lion
는 것이다:Animal
클래스입니다. 우리는 거기에 구현 세부 사항을 제공 할 수 있습니다.
public class Lion extends Animal{... @Override public void animalSound(){ System.out.println("Roar"); }}
public class Dog extends Animal{... @Override public void animalSound(){ System.out.println("Woof"); }}
당신이 볼 수는 있지만 우리는 일반적인 작업에 대한 모든 서브 클래스는animalSound()
그러나 거기 있었을 다른 방법으로 동일한 작업입니다., 이것은 다형성의 완벽한 예입니다(우리가 다른 방식으로 단일 동작을 수행 할 수있게 해주는 기능).
유형의 다형성
1)정전 다형성
2)동적 다형성
정적 다형성:
다형성을 해결되는 동안 컴파일러간으로 알려진 정전 다형성이다. 메서드 오버로딩은 정적 다형성 예제로 간주 될 수 있습니다.
메소드 오버로드:이를 통해 서명이 다른 클래스에서 동일한 이름을 가진 둘 이상의 메소드를 가질 수 있습니다.,
출력:
aa 10
말할 때 메서드 서명에 대해 말하는 게 아니에 반환한 유형의 방법,예를 들면 두 가지 방법이 동일한 이름이,동일한 매개 변수와 다른 형식을 반환,이 유효하지 않은 방법이 과부하는 예입니다. 이렇게하면 컴파일 오류가 발생합니다.
동적 다형성
동적 메소드 디스패치라고도합니다. 동적 다형성은 재정의 된 메소드에 대한 호출이 런타임 다형성이라고 불리는 이유는 오히려 런타임에 해결되는 프로세스입니다.,
예
출력:
Woof
이후로는 모두 클래스,아동 클래스고 부모 등이 동일한 방법은animalSound
. 메소드 중 어느 것이 호출 될지는 jvm 에 의해 런타임에 결정됩니다.
몇 가지 더 재정의 예이다.
가-&가-관계
자동차차량-고-라이센스는 다음 코드는 다음과 같이 보일 것입니다.
public class Vehicle{ }public class Car extends Vehicle{ private License myCarLicense;}
추상 클래스와 방법에 OOPs 개념
추상적인 방법:
1)방법을 선언했지만 정의되지 않았습니다. 메소드 서명 만 본문이 없습니다.,
2)를 사용하여 선언된 추상 키워드
3)예제:
abstract public void playInstrument();
5)을 넣어 사용하는 일종이 강제의 클래스에는 상속받은 클래스에는 추상적인 방법입니다. 클래스를 상속하는 제공해야의 구현은 모든 추상적인 방법의 부모 등 다른 선언 서브 클래스로 추상적입니다.
6)이 추상
- 생성자
- 정적 방법
- 개인 방법
- 있는 방법을 선언한”마지막”
추상 클래스가
는 추상 클래스 메서드에 대해 간략하게 설명합 하지만 반드시를 구현하는 모든 방법입니다.,
abstract class A{ abstract void myMethod(); void anotherMethod(){ //Does something }}
참고 1:기본 클래스의 모든 메소드를 구현하기가 어려운 시나리오가있을 수 있습니다. 이러한 시나리오에서 하나를 정의할 수 있는 기본 클래스로 추상 클래스가 어떤 의미에는 이 기본 클래스의 특별한 종류의 클래스가 완료되지 않습니다.
추상 기본 클래스에서 파생 된 클래스는 추상 클래스에서 구현되지 않은 메소드(추상임을 의미)를 구현해야합니다.
참고 2:추상 클래스를 인스턴스화 할 수 없으므로 추상 클래스의 객체를 만들 수 없습니다., 이 클래스를 사용하려면,당신은 당신을 만들어야 할 또 다른 클래스를 확장하는 이 추상 클래스 구현을 제공합의 추상적인 방법이,다음 사용할 수 있는 객체의 것 아동 클래스를 호출이 아닌 부모의 추상 클래스 메소드뿐만 아니라 구현 방법은(그된 추상적 부모이지만 구현에 아동 클래스).
주 3:는 경우 자녀를 모두 구현하지 않은 추상적인 방법의 부모 등(추상 클래스),다음은 아이 클래스 선언해야 합 추상적입니다.,
의 예는 추상 클래스와는 방법
여기서 우리는 추상 클래스 동물 추상적인 방법 animalSound(),이후 동물의 소리에서 다른 하나는 동물 다른 점은 없에게 구현해 이 방법으로 모든 어린이 클래스를 재정의해야 합니다 이 방법을주는 자신의 구현을 상세정보. 그것이 우리가 추상적으로 만든 이유입니다.
이제는 각각의 동물이 있어야 합 소리함으로써,이 방법은 추상적인 우리는 필수 아이스하게 구현 상세정보를 이 방법입니다. 이런 식으로 우리는 모든 동물이 소리를 갖도록합니다.,
출력:
Woof
인터페이스에서 Java
인터페이스의 청사진 클래스는 선언할 수 있습을 사용하여 인터페이스는 키워드를 사용합니다. 인터페이스는 상수와 추상 메소드 만 포함 할 수 있습니다(서명 만있는 메소드 본문 없음).추상 클래스와 마찬가지로 인터페이스는 인스턴스화 할 수 없으며 클래스에 의해서만 구현되거나 다른 인터페이스에 의해 확장 될 수 있습니다. 인터페이스는 자바에서 완전한 추상화를 달성하는 일반적인 방법입니다.,
참고:
- 자바를 지원하지 않는 여러 상속,그러나 클래스를 구현할 수 있는 하나 이상의 인터페이스
- 인터페이스와 유사하다는 추상 클래스 하지만 그것은 단지 포함 추상적인 방법입니다.,
- 인터페이스를 사용하여 만든 인터페이스는 키워드로 대신 키워드 등
- 우리가 사용하는
implements
키워드는 인터페이스를 구현하는(비슷한 클래스를 확장으로 확장하는 키워드)
인터페이스:문법
class ClassName extends Superclass implements Interface1, Interface2, ....
를 들어 인터페이스:
참고:
- 모든 방법은 인터페이스에서는 암시적으로 공개하고 추상적입니다. 각 메소드 앞에
abstract
키워드를 사용하는 것은 선택 사항입니다. - 인터페이스에는 최종 변수가 포함될 수 있습니다.,
- 클래스는 하나의 다른 클래스 만 확장 할 수 있지만 임의의 수의 인터페이스를 구현할 수 있습니다.
- 경우 클래스를 구현하는 인터페이스를 정의의 추상적인 방법의 인터페이스,다른 사람으로 선언할 수 있습니다 추상 클래스가
- 인터페이스에 참조할 수 있는 객체의 구현하는 클래스입니다.
일반화 및 전문화:
에서 개념을 구현하기 위해 상속의에서는 죄송,하나는 먼저 확인들 사이의 유사성이 서로 다른 클래스로를 기본 클래스입니다.,
서로 다른 클래스 간의 유사성을 식별하는이 과정을 일반화라고합니다. 일반화는 두 개 이상의 클래스에서 공유 특성을 추출하고 일반화 된 수퍼 클래스로 결합하는 프로세스입니다. 공유 특성은 속성 또는 메소드 일 수 있습니다.
일반화와 달리 전문화는 기존 클래스에서 새로운 하위 클래스를 만드는 것을 의미합니다. 하는 경우는 특정 특성이나 방법만을 적용하는 개체의 일부는 클래스의 서브 클래스를 만들 수 있습니다.,
액세스 지정자
글쎄,당신은 내가 위에서 공유 한 예제에서 공개,비공개 키워드를 보았을 것입니다. 이들은 데이터 멤버,메소드 또는 클래스의 범위를 결정할 때 액세스 지정자라고합니다.
java 에는 4 가지 유형의 액세스 지정자가 있습니다.
public:모두에게 액세스 할 수 있습니다. 다른 객체도이 멤버 변수 또는 함수에 액세스 할 수 있습니다.
private:다른 객체에서 액세스 할 수 없습니다. 비공개 멤버는 동일한 클래스의 메서드에서만 액세스할 수 있습니다. 선언 된 클래스에서만 액세스 할 수있는 객체.,
보호:의 범위를 보호되는 변수에는 선언한 클래스고에서 클래스를 상속받은 클래스(범위는 클래스와 서브 클래스).
기본값:범위는 패키지 수준입니다. 우리는 필요하지 않습을 명시적으로 언급한 기본적으로 할 때 우리는 언급하지 않는 모든 접속자로 기본입니다.,
것입니다 무엇을 배울에서 다음 튜토리얼에 OOPs 개념
지만 우리는 거의 모든 죄송 개념을 여기 있지만,무엇이든 우리는 지금까지 배운 것들을 가이드에 대한 간략한,이러한 주제로는 넓고 거기에 너무 범위를 배우 이러한 항목에서는 세부의 도움으로 예입니다. 그게 내가 다음 튜토리얼에서 예제와 다이어그램과 함께 자세히 각각의 모든 주제를 다룬 이유.
순차적 인 방식으로 다음 자습서를 어떻게 읽을 수 있습니까? 거기에 몇 가지 방법으로 할 수–1)자습서 링크가 제공하는 왼쪽 사이드바에서 이동하지만 그들에 주어진 순서에 있습니다.,
2)순차적 인 방식으로 자습서에 대한 모든 링크가있는 기본 java 자습서 페이지로 이동하십시오.
이러한 OOPs 개념을 이해하는 데 어려움이 있으면 아래에 의견을 남기면 가능한 한 빨리 다시 연락 드리겠습니다.피>