第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的比较关系

 

原文地址:https://www.cnblogs.com/-xuewuzhijing-/p/13157629.html