2019-07-16学习java的第9天

static 关键字

在类中,用static声明的成员变量为静态成员变量,也称为类变量。 类变量的生命周期和类相同,在整个应用程序执行期间都有效。它有如下特点:

  1. 为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化。

  2. 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享!!

  3. 一般用“类名.类属性/方法”来调用。(也可以通过对象引用或类名(不需要实例化)访问静态成员。)

  4. 在static方法中不可直接访问非static的成员

        5.造方法用于对象的初始化!静态初始化块,用于类的初始化操作!在静态初始化块中不能直接访问非static成员。静态代码块在类加载时(创建对 象之前)就会执行。

核心要点:            static修饰的成员变量和方法,从属于类。            普通变量和方法从属于对象的。


代码演示


参数传值机制

· 基本数据类型参数的传值

  传递的是值的副本。 副本改变不会影响原件。


基本数据的传递

· 引用类型参数的传值

  传递的是值的副本。但是引用类型指的是“对象的地址”。因此,副本和原参数都指向了同一个“地址”,改变“副本指向地址对象的值,也意味着原参数指向对象的值也发生了改变”。


引用数据的传递


包(package)

包机制是Java中管理类的重要手段。 开发中,我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理。 包对于类,相当于文件夹对于文件的作用。


包的命名规则:

* 所有字母都小写

* 使用域名反写+功能名,例如com.sxt.oop

包的声明:

*声明该类在哪个包中。

*声明格式:package 包名,需要位于代码的的最上方

* 包的导入:

*在一个类使用另一个包中的类,需要导入。

* 导入方法1、import 包名.类名--------》导入的是该包下的某个类。

*导入方法2、 import 包名.*----------》此时是导入的该包下的所有类。

* 导入包的快捷键 ctrl+shift+O


package


JKD中自带的主要包


静态导入

静态导入时,需要加static参数;


静态导入


继承的实现

继承让我们更加容易实现类的扩展。 比如,我们定义了人类,再定义Boy类就只需要扩展人类即可。实现了代码的重用,不用再重新发明轮子(don’t  reinvent  wheels)。

      从英文字面意思理解,extends的意思是“扩展”。子类是父类的扩展。现实世界中的继承无处不在。比如:

上图中,哺乳动物继承了动物。意味着,动物的特性,哺乳动物都有;在我们编程中,如果新定义一个Student类,发现已经有Person类包含了我们需要的属性和方法,那么Student类只需要继承Person类即可拥有Person类的属性和方法。

使用extends实现继承



子类代码

继承的要点

1.父类也称作超类、基类、派生类等。

2.Java中只有单继承,没有像C++那样的多继承。多继承会引起混乱,使得继承链过于复杂,系统难于维护。

3.Java中类没有多继承,接口有多继承。

4.子类继承父类,可以得到父类的全部属性和方法 (除了父类的构造方法),但不见得可以直接访问(比如,父类私有的属性和方法)。

5.如果定义一个类时,没有调用extends,则它的父类是:java.lang.Object。

instanceof 运算符

  instanceof是二元运算符,左边是对象,右边是类;当对象是右面类或子类所创建对象时,返回true;否则,返回false。

主要用途“用于防止类型转换的异常”


你可能感兴趣的:(2019-07-16学习java的第9天)