다트 객체 지향

클래스 다트하고 있습니다 단일 상속 객체 지향 언어는, 모든 객체는 클래스의 인스턴스는, 모든 클래스는 객체의 하위 클래스입니다.

객체 지향 프로그래밍 (OOP)의 세 가지 기본 기능은 다음과 같습니다 캡슐화, 상속, 다형성

 

패키지 : 패키지가 객체의 주요 특징과 클래스의 개념이다. 패키지, 자신의 속성과 다른 객체의 호출에 가능한 방법의 추상 클래스, 및 부분으로 포장 된 목적 것들, 숨겨진 속성과 메소드의 일부 동안.

상속 : 객체 지향 프로그래밍 (OOP) 언어의 가장 큰 특징은 "상속"입니다. 상속은 이러한 능력을 의미한다 : 원래 클래스의 경우이 함수를 다시 작성하고 확장 할 필요없이, 기존 클래스의 기능을 사용할 수 있습니다.

다형성 : 서브 포인터 타입 상위 포인터에 할당 유형을 허용 동일한 함수 호출은 다른 효과를 실행했다.

 


 

  • 생성자

// 클래스는 Person {
 //    문자열 이름 = '홍길동';
 //    INT = 20 시대입니다 
 //    // 기본 생성자
 //    인격 () {
 //      이 방법의 내용의 생성자 함수입니다 인쇄 ( ' 시간 트리거 ')의 예;
 //    }
 //    무효 printInfo () {   
 //      인쇄 ( "$ ---- $ {} {this.name this.age}");
 //    }
 // } 


// {Person 클래스
 //    문자열 이름;
 //    INT 나이; 
 //    // 기본 생성자
 //    인격 (문자열 이름, INT 나이) {
 //        this.name = 이름;
 //        this.age = 나이;
//    }
 //    무효 printInfo () {   
 //      인쇄 ( "$ ---- $ {} {this.name this.age}");
 //    }
 // } 


클래스 는 Person { 
  문자열 이름, 
  INT 나이; 
   / / 기본 생성자 속기, 그래서 일반적으로 
  인격 ( 다음은이 .name을, 다음은이 .age),
   무효 printInfo () {    
    인쇄 ( "$ ---- $ {} {this.name this.age}" ); 
  } 
} 


공극 ) (주 { 
  
  인격은 P1 = 새로운 새로운 인격 ( '홍길동', 20이다 ); 
  p1.printInfo (); 


  인격 P2 = 새로운 새사람 ( '홍길동', 25 ); 
  p2.printInfo (); 

}

(1) 사이의 차이 : 생성자 자바 약간 상이한는 생성자 내부 다트 더 기록 할 수있다.

클래스 는 Person { 
  문자열 이름을, 
  INT 나이; 
   // 기본 생성자 속기 
  인격 ( 다음은이 .name을, 다음은이 .age) 
  
  Person.now () { 
    인쇄 ( '나는라는 이름의 생성자입니다' ); 
  } 

  Person.setInfo (문자열 이름, INT의 나이) {
     다음은이 .name을 = 이름,
     이것을 .age = 나이; 
  } 

  무효 printInfo () {    
    인쇄 ( "$ ---- $ {} {this.name this.age}" ); 
  } 
} 

무효 메인 () { 


  // VAR DateTime.Now 새로운 새로운 D = ();    //날짜 시간이 생성자라는 이름의 호출의 예
   // 인쇄 (D)를; 


  // 인격 새 새 P1은 사람 ( '홍길동', 20) =;    // 클래스의 기본 인스턴스가 호출 될 때 기본 생성자 

  // 인격 P1 새로운 새로운 = ()을 Person.now;    // 이름 생성자 



  는 Person P1 = 새로운 새로운 Person.setInfo ( '홍길동', 30 ); 
  p1.printInfo (); 
}

2 개의 차이 : 이 공공 개인 보호 된 액세스 한정자의 다트 없음,하지만 우리는 _ 사용은 개인 재산 또는 방법으로 정의 할 수 있습니다.

3 차이 게터와 세터 개질제

클래스 사각형 {
   이중 높이;
  더블 폭; 
  사각형 (  .height의, .width);
  // 게터修饰符
  지역 {얻을
     반환   .height의 * .width을; 
  } 
  // 세터修饰符
  설정 areaHeight (값) {
      .height의 = 값; 
  } 
} 

공극 의 main () { 
  사각형 R = 사각형 (10.0,5.0 ); 
  (r.area) 인쇄; 
  r.areaHeight = 20.0 ; 
  (r.area) 인쇄; 
}

 차이 4 :. 다트는 생성자 본문을 실행하기 전에 인스턴스 변수를 초기화 할 수 있습니다

클래스 사각형 { 

  INT 높이;
  INT 폭; 
  사각형 () : 세로 = 2, 폭 = 10 { 
    
    인쇄 ( "$ {} --- this.height this.width $ {}" ); 
  } 
  의 getArea는 () { 
    반환   .height의 * .width 단계; 
  } 
} 

공극 의 main () { 
  사각형의 R = 새로운 사각형 (); 
  인쇄 (r.getArea ()); 
   
}

 


 

  • 다트의 정적 멤버와 정적 메소드

클래스 사람 {
   정적 문자열 이름 = '张三' ;
  정적  무효 쇼 () { 
    인쇄 (이름); 
  } 
} 

공극 의 main () { 
  프린트 (Person.name); 
  () Person.show;  
}

그리고 자바 구문은 기본적으로 동일합니다.

정적 메소드가 액세스 할 수없는 비 정적 멤버 수있는 전용 액세스 정적 멤버.

비 정적 메서드는 비 정적 멤버에 액세스 할 수 있습니다, 당신은 또한 정적 멤버에 액세스 할 수 있습니다.

 


 

 

  • 오브젝트 연산자 다트

조건 연산자 -?

클래스 는 Person { 
  문자열 이름, 
  INT 나이, 
  인격 ( 다음은이 .name을, 다음은이 .age),
   무효 printInfo () { 
    인쇄 ( "$ --- $ {} {this.name this.age}" ); 
  } 
} 


무효 메인 () { 
  는 Person p를 
  p.printInfo ();   // NoSuchMethodError :. 상기 방법에서, 'printInfo가'ON 널 불렸다 
  P .printInfo ()?   // p가 NULL, printInfo 방법의 구현이 아닌 경우. 그렇지 않으면 건너 뜁니다. 
}

유형 변환 (자바 비슷한 캐스트) -로

 (사람 등 P) .printInfo ();

유형 판단 --is

경우 {(p는 사람입니다) 
  ...   
}

캐스케이드 작업 - ..

P..NAME = "홍길동" 
 ..age = 30 
 ..printInfo ();

 

 

 

 

 

 

추천

출처www.cnblogs.com/chichung/p/11975850.html