다크호스 프로그래머 - 자바 기초 - 대상 지향 (편 1)

9055 단어 자바 기반
--- 자바 교육, 안 드 로 이 드 교육, iOS 교육,. Net 교육, 당신 과 의 교 류 를 기대 합 니 다!
제 1 장
1. 대상 지향     2. 멤버 변수      3. 익명 의 대상     4. 포장      5. 구조 함수        6, 키워드 this
제2 장
1. 키워드 static   2. 지식 총화     3. 초기 화 과정    4. 초기 디자인 모델
제3 장
1. 상속   2. 명언 계승   3. 다른 관계   4. 덮어 쓰기     5. this 구문    6. 키워드 final           7. 추상
8. 포장 과 계승 을 정리한다.    9. 추상 적 인용   10. 인터페이스
코드 부록
1. 주 함수 에 전달  2. 초기 화 과정     3. 단일 디자인   4. 인터페이스 와 계승 의 활용            5. 모델 디자인
제 1 장
1. 대상 을 대상 으로 대상 을 대상 으로 하 는 것 은 일종 의 사상 이다. 생활 의 모든 측면 에 나타 나 고 집행 자 를 지휘자 로 만 들 며 복잡 한 문 제 를 단순화 시 킬 수 있 으 며 구체 적 인 과정 에 관심 을 가지 지 않 아 도 된다.세 가지 특징: 포장, 계승, 다 형.뒤에 자세히 서술 하 다.
2. 구성원 변 수 는 전역 적 이 고 메모리 에 존재 하 며 대상 에 따라 생 성 됩 니 다.
 3. 익명 의 대상 인용 이 없 기 때문에 두 번 째 를 만 들 때 첫 번 째 는 쓰레기 로 회수 되 기 때문에 속성 을 호출 하 는 것 은 재 미 없 습 니 다.  。       
호출 방법 에 만 사용 되 며 한 번 만 호출 할 수 있 습 니 다.                     무릇 간략하게 쓴 것 은 모두 결함 이 있다.                     익명 대상 은 매개 변 수 를 전달 할 수 있 습 니 다.
                    인용 유형 은 네 가지 가 있 습 니 다. 강, 약, 부 드 러 움,?4. 포장       대상 의 속성 과 세부 사항 을 숨 기 고 대외 적 으로 공공 접근 방식 을 제공 합 니 다.       함 수 는 가장 작은 패키지 이 고 클래스 도 패키지 입 니 다.       장점: 변 화 를 격 리 하고 사용 이 편리 하 며 코드 의 복용 성 을 높이 고 안전성 을 높 인 다.5. 구조 함수      한 가지 사물 을 분석 할 때 그 가 가지 고 있 는 특징 을 묘사 하고 구조 함 수 를 사용한다.     구조 코드 블록: 구조 함수 보다 먼저 실행 되 며 모든 대상 을 초기 화 하 는 데 사 용 됩 니 다.6、this      현재 대상 을 대표 하 는 인용.
      this 구문:                                                       (1) 구조 함수 간 에 만 사용 할 수 있다.          (2) 구조 함수 의 첫 번 째 문장 에 써 야 합 니 다. 초기 화 는 먼저 실행 되 고 한 번 만 실 행 됩 니 다.          (3) this 문장의 this 는 현재 대상 의 인용 을 대표 합 니 다.
제2 장
1. 키워드 static
static 에 의 해 수 식 된 구성원 (구성원 변수 와 구성원 함수) 은 모든 대상 을 공유 할 수 있 습 니 다.호출 방식 이 하나 더 생 겼 다.방법 구역 / 공유 구역 / 데이터 구역 에 존재 합 니 다.A. 특징: (1) 세 류 를 불 러 와 불 러 옵 니 다. 수명 주기 가 길 다 는 뜻 입 니 다. (2) 모든 대상 에 게 공용 (3) 대상 보다 먼저 존재 합 니 다. (4) 클래스 이름 으로 직접 호출 됩 니 다.
B. 대상 특유: 구성원 변수 - 인 스 턴 스 변수                       대상 공유: 정적 구성원 변수 - 클래스 변수
이익: (1) 공유   메모리 절약;         (2) 유형 명 으로 접근 할 수 있다.
폐단: (1) 생명주기 가 너무 길다.         (2) 접근 에 한계 가 있다 (정적 에 만 접근 할 수 있다).C. 정적 은 언제 사용 합 니까?(1) 데 이 터 를 공유 할 때 정적 인 구성원 변 수 를 정의 합 니 다 (2) 사용 하지 않 았 습 니 다.   대상 특유 데이터 시 정적 방법 정의
D. Aarray Tool 컴 파일 도구 류 의 컴 파일 을 정리 합 니 다. 함수 가 정적 화 된 내부 함수 의 사유 화 입 니 다. 구조 함수 가 없 는 사유 화 를 드 러 낼 필요 가 없습니다. 엄밀 하고 유사 한 이름 으로 만 호출 될 수 있 습 니 다.
2. 지식 총화
클래스 는 언제 불 러 옵 니까?:클래스 의 내용 을 사용 할 때 만 불 러 옵 니 다.
정적 코드 블록 이란 무엇 입 니까?:정적 코드 블록 이 클래스 로 딩 할 때 실 행 됩 니 다.    클래스 초기 화 에 사용 합 니 다.    실행 순 서 는 클래스 로 딩 시 정적 코드 블록 을 실행 하고 클래스 로 딩 후 main 함 수 를 호출 합 니 다.
정적 코드 블록 과 구조 코드 블록 의 차이 점 은?:정적 코드 블록  클래스 초기 화 에 사용 되 며, 구조 코드 블록 은 모든 대상 을 초기 화 하 는 데 사 용 됩 니 다.
3. 초기 화 과정
. Person p = new Person ("zz", 23), 이 말 은 무엇 을 했 습 니까?(1) 로 딩 클래스;(2) 정적 코드 블록 을 실행 하여 클래스 를 초기 화 합 니 다.(3) 메모 리 를 쌓 고 공간 을 분배 하 며 대상 특유 의 속성 을 불 러 오고 기본적으로 초기 화 합 니 다.(4) 초기 화 보이 기;(5) 구조 코드 블록 초기 화 실행;(6) 구조 함수 초기 화;(7) 메모 리 를 쌓 고 대상 주 소 를 생 성 합 니 다.(8) 스 택 메모리 에 변수 p 를 만 들 고 주 소 를 부여 합 니 다.
4. 디자인 모델 을 처음 보 는 것 은 디자인 모델 이란 특정한 문 제 를 해결 하 는 효과 적 인 방법 이다.자바 에는 23 가지 유 니 버 설 디자인 모델 이 있 습 니 다.
단일 디자인 모드
모든 종류의 호출 을 위 한 대상 만 만 만 듭 니 다.굶 주 린 사람 모델: 대상 을 직접 만 들 고 안전 하 며 개발 에 있어 게으름뱅이 모델 을 자주 사용 합 니 다. 방법 을 호출 할 때 대상 을 만 들 고 위험 이 있 습 니 다. 해결 방안 은 동기 화 자 물 쇠 를 추가 하고 두 번 판단 합 니 다.
제3 장
1. 상속
extends 키 워드 를 통 해 클래스 와 클래스 간 에 혈연 관 계 를 가지 게 하고 끊임없이 발전 하여 큰 체 계 를 형성한다.역할: a. 코드 재 활용 성 b. 클래스 와 클래스 간 의 관 계 를 설명 합 니 다.
관계: 만물 은 대상 이 고 자 바 는 대상 을 대상 으로 하 며 사물 은 보편적으로 연결 되 어 있 습 니 다. 계승 은 이 보편적 인 관계 중의 하나 이 므 로 잘 사용 하 세 요!기능, 약자 코드 를 사용 하기 위해 계승 할 수 없습니다!계승 은 사물 자체 가 가지 고 있 는 관계 이 며, 타고 난 것 이다.2, 명언 계승                     *  부모 클래스 기능 을 찾 아 보고 하위 클래스 대상 을 만 듭 니 다.
      *계승 하기 때문에 다 태.
3, 기타 관계 집합: has a 집합: become 조합: one part of
4. 덮어 쓰기 의미: 부모 클래스 를 바 꾸 는 방법 전제: 하위 클래스 함수 권한 은 부모 클래스 함수 권한 덮어 쓰기 와 다시 불 러 오 는 차이 보다 큽 니 다.
다시 불 러 오기 와 다시 쓰기 함수 의 특성 다시 불 러 오기: 같은 클래스 에서 같은 이름 함수 의 매개 변수 목록 이 다 릅 니 다. 다시 쓰기: 하위 클래스 에서 같은 이름 함수 가 똑 같 습 니 다.
5. this 구문 this () 또는 슈퍼 () 는 모두 대응 하 는 구조 함 수 를 호출 하 는데 실질 적 으로 그들 이 가리 키 는 것 은 현재 대상 의 응용 이다.
초기 화 > > > 실례 화 초기 화 와 실례 화 는 어떤 관계 입 니까?
하위 클래스 의 초기 화 과정: 부모 클래스 의 빈 구조 함수 가 존재 할 때 모든 구조 함수 에 은신 슈퍼 () 문 구 를 가지 고 있 습 니 다.부모 클래스 의 빈 구조 함수 가 존재 하지 않 을 때 인삼 이 있 는 슈퍼 (..) 문 구 를 수 동 으로 지정 해 야 합 니 다.하위 클래스 에 최소한 하나의 구조 함수 가 부모 클래스 의 구조 함수 에 접근 합 니 다.물론 this () 문 구 를 지정 할 수도 있다.
6. final 수식 류, 이 종 류 는 계승 할 수 없습니다.수식 함수, 함 수 는 복사 할 수 없습니다.변 수 를 수식 하고 변 수 는 정 해진 값 입 니 다.상수  XXXX=YYY; 지금까지 class 를 수식 한 것 은: Public 입 니 다.  final
추상
추상, 즉 이해 할 수 없 기 때문에 추상 적 인 방법 이 추상 류 에 존재 하 는 지 확실 하지 않다. 추상 류 는 예화 할 수 없고 자 류 가 모든 추상 적 인 방법 을 계승 하고 복사 해 야 한다. 일부 추상 적 인 방법 을 복사 하 는 자 류 는 추상 류 이다.이런 상황 은 존재 할 필요 가 없 을 것 같은 데?추상 류 특징: a. 일반 류 보다 추상 함수 b. 특수 상황 을 예화 할 수 없다. > > 추상 류 는 추상 적 인 방법 이 없다.
요약: 추상 류 는 추상 적 인 방법 이 있 든 없 든 모두 좋 지만 추상 적 인 방법 은 반드시 추상 류 에 두 어야 한다.
그럼 추상 적 인 방법 은 언제 사용 합 니까?:기능 주체 가 불확실 할 때
8. 패 키 징 과 계승 에 대한 정리 패 키 징: 속성 을 숨 기 고 디 테 일 을 실현 합 니 다. 사용 은 복잡 함 에서 간단 해 지고 권한 관리 계승 을 실현 합 니 다. 하나의 동작 입 니 다. 이 를 통 해 하나의 동작 을 만 듭 니 다.  타고 난  관계.
9. 추상 적 인 인용 추상 류 의 인용 은 현재 보면 세 가지 방식 이 있다. a. 모두 추상 적 인 방법 b. 부분 은 추상 적 인 방법 c. 추상 적 인 방법 모델 디자인 사상 이 없다.             기능 에 불확실 한 내용 이 있 으 면 노출 시 켜 하위 클래스 가 완성 하도록 한다.추상 류 는 자 류 를 통 해 실례 화 되 어야 한다.
10, 인터페이스
초기 이해: 추상 류 중의 방법 이 모두 추상 적 인 방법 일 때 이런 유형 은 인터페이스 인터페이스 에 있 는 구성원 들 이 고정된 수정자 가 있 고 구성원: 상수 와 추상 적 인 방법, 구성원 들 은 모두 Public 이다.
인터페이스 간 다 중 계승 가능 특징: a. 인 터 페 이 스 는 대외 노출 의 규칙 b. 인 터 페 이 스 는 프로그램 기능 의 확장 c. 인 터 페 이 스 는 다 중 실현 d. 결합 성 을 낮 출 수 있다.
클래스 정의 기본 기능, 인터페이스 정의 확장 기능 (시스템 외)
 
코드 부록
1, 주 함수 에 전달
/*
public static void main(String[] args) 

   :        。       ,   jvm  。

      :
public:              。
static:                 。
void:           。
main:     ,          ,   jvm  。
(String[] arr):     ,         ,           。        。

         :jvm  。

jvm       ,    new String[0];
*/

class MainDemo 
{
	public static void main(String[] args)//new String[]
	{
		String[] arr = {"hah","hhe","heihei","xixi","hiahia"};

		MainTest.main(arr);
	}
}

//String[] args = new String[3];
//String[] args = null;


class MainTest
{
	public static void main(String[] args)
	{
		for(int x=0; x

2, 초기 화 과정
class Person
{
	private Person(){}
	private String name = "hah";
	private int age;
	private static  String country = "cn";
	Person(String name,int age)
	{
		this.name = name;
		this.age = age;
	}
	
	{
		System.out.println(name+".."+age);
	}
	public void setName(String name)
	{
		this.name = name;
	}

	public void speak()
	{
		System.out.println(this.name+"..."+this.age);
	}

	public static void  showCountry()
	{
		System.out.println("country="+Person.country);
		Person.method();
	}
	public static void method()
	{
		System.out.println("method run");
	}

}

class  PersonDemo
{
	public static void main(String[] args) 
	{
		Person p = new Person("zhangsan",20);
		p.setName("lisi");
		new Person();
	}
}
/*
Person p = new Person("zhangsan",20);

          ?
1,  new   Person.class.      Person.class         。
2,      static   ,     , Person.class      。
3,         ,      。
4,              。        。
5,          。
6,             。
7,               。
8,            p  。

*/

3, 단일 디자인
class Single
{

/*
      
*/
	private  Single(){}

	private static Single s = new Single();

	public static  Single getInstance()
	{
		return s;
	}
}

4. 인터페이스 와 계승 활용
interface Inter
{
	public static final int NUM = 3;
	public abstract void show();
}

interface InterA
{
	public abstract void show();
}

class Demo
{
	public void function(){}
}

class Test extends Demo implements Inter,InterA
{
	public void show(){}
}


interface A
{
	void methodA();
}
interface B //extends A
{
	void methodB();
}

interface C extends B,A
{
	void methodC();
}

class D implements C
{
	public void methodA(){}
	public void methodC(){}
	public void methodB(){}
}

5. 모델 디자인: 추상 적 인 관련 디자인 모델 이 있다.
/*
  :           。
  :                 。

    :System.currentTimeMillis();

        ,         。

    ,        。

        ?
      ,          ,          ,               ,
                。         。


*/

abstract class GetTime
{
	public final void getTime()
	{
		long start = System.currentTimeMillis();

		runcode();

		long end = System.currentTimeMillis();

		System.out.println("  :"+(end-start));
	}
	public abstract void runcode();

}


class SubTime extends GetTime
{

	public void runcode()
	{
		
		for(int x=0; x<4000; x++)
		{
			System.out.print(x);
		}
	}
}


class  TemplateDemo
{
	public static void main(String[] args) 
	{
		//GetTime gt = new GetTime();
		SubTime gt = new SubTime();
		gt.getTime();
	}
}

틀린 곳 을 지적 하여 바로잡아 주 십시오!
 
  ------ 자바 교육, 안 드 로 이 드 교육, iOS 교육,. Net 교육, 당신 과 의 교 류 를 기대 합 니 다!

좋은 웹페이지 즐겨찾기