zoukankan      html  css  js  c++  java
  • 第8章(上)--面向对象编程(中级)

    1.包

    1.1.1       包的三大作用

    1)      区分相同名字的类

    2)      当类很多时,可以很好的管理类[模块]

    3)      控制访问范围

    1.1.2       打包命令

    • 打包基本语法

    package com;

    说明: package 关键字,表示打包.

    com: 表示包名

    • 打包的本质分析(原理)

    实际上就是创建不同的文件夹来保存类文件。

     

     2. 包的命名

    • 命名规则:

    只能包含数字、字母、下划线、小圆点.,但不能用数字开头,不能是关键字或保留字

    demo.class.exec1  //错误
    demo.12a //

    • 命名规范:

    一般是小写字母+小圆点一般是

    com.公司名.项目名.业务模块名

    比如:com.atguigu.oa.model;  com.atguigu.oa.controller;

           常用的包

    一个包下,包含很多的类,java中常用的包有:

    java.lang.*   //lang包是基本包,默认引入,不需要再引入.

    java.util.*   //util 包,系统提供的工具包, 工具类,使用

    java.net.*   //网络包,网络开发

    java.awt.*  //是做java的界面开发,GUI

           如何引入包

    语法: import  包;

    比如 import java.awt.*; // * 表示将该包的所有类和接口引入.

    我们引入一个包的主要目的是要使用该包下的类

    比如 import java.util.Scanner;  就只是引入一个类Scanner。

             注意事项

    1) package 的作用是声明当前类所在的包,需要放在class的最上面,一个类中最多只有一句package

    2) import指令 位置放在class的上面,package的下面,可以有多句且没有顺序要求

     3.访问修饰符

           基本介绍

    java提供四种访问控制修饰符号控制方法变量(属性、字段)的访问权限(范围):

    1)      公开级别:用public 修饰,对外公开

    2)      受保护级别:用protected修饰,对子类和同一个包中的类公开

    3)      默认级别:没有修饰符号,向同一个包的类公开.

    4)      私有级别:用private修饰,只有类本身可以访问,不对外公开.

     4.继承

    继承可以解决代码复用,

        继承的基本语法

    class 子类 extends 父类{

    }

    1) 子类就会自动拥有父类定义的属性和方法

    2) 父类又叫 超类,基类。

    3) 子类又叫派生类

     5.继承的注意事项和细节

    1)子类继承了所有的属性和方法,只是私有的属性不能直接访问,需要通过公共的方法去访问

    2) 子类没有继承父类的构造器,但必须调用父类的构造器, 完成父类的初始化

    3) 当创建子类时,不管你使用子类的哪个构造方法,默认情况下总会去调用父类的无参构造函数,如果父类没有提供无参构造函数,则必须在子类的构造函数中用 super 去指定使用父类的哪个构造函数完成对父类的初始化工作,否则,编译不会通过

    4) 如果希望指定去调用父类的某个非默认构造方法,则显示的调用一下

    5) super在使用时,需要放在方法体的第一句位置

    6) super() 和 this() 都只能放在构造方法句首,因此这两个函数不能共存在一个方法中

    7) java所有类都是Object类的子类

    8) 父类子类最多只能继承一个父类(指直接继承),即java中是单继承机制。

    9)子类最多只能继承一个父类(指直接继承),即java中是单继承机制。

    10)构造器的调用不限于直接父类!将一直往上追溯直到Object类

     11) 不能滥用继承,子类和父类之间必须满足 is-a 的逻辑关系

    6.继承的内存分配

     7.super()

    super代表父类的引用,用于访问父类的属性、方法、构造

     

       基本语法


    1) 访问父类的属性 , 不能访问父类的private属性 [案例]
        super.属性名;
    2) 访问父类的方法,不能访问父类的private方法
        super.方法名(参数列表);
     3)访问父类的构造器(这点前面用过):
        super(参数列表);只能放在构造器的第一句,而且只能出现一句!

         super给编程带来的便利


    1) 调用父类的构造器 (分工明确, 父类属性由父类初始化,子类的属性由子类初始化)

    1)      当子类中有和父类中的成员(属性和方法)重名时,为了访问父类的成员,必须通过super。如果没有重名,使用super、this、直接访问是一样的效果! [举例]

    2)      super的访问不限于直接父类,如果爷爷类和本类中有同名的成员,也可以使用super去访问爷爷类的成员;如果多个基类中都有同名的成员,使用super访问遵循就近原则。A->B->C

     8.super和this的比较关系

     

  • 相关阅读:
    Material和SharedMaterial的区别
    unity 字典序列化的问题
    序列化到本地
    数据分离
    太久没更 重回博客园
    Unity下替换模型后 之前生成的Prefab中的原模型脚本不会丢失
    Enum.Parse
    Assert断言机制
    20170612
    Unity Cookie
  • 原文地址:https://www.cnblogs.com/-xuewuzhijing-/p/13157629.html
Copyright © 2011-2022 走看看