继承;构造器;方法的重写;object;package;修饰词

继承:

   java继承是定义一种的新的类型,从已有的类中吸收

   成员变量和方法,新的类型可以添加新的方法和成员变量。

   这种方式可以提高代码的复用性,缩短开发周期,

   减少开发费用。

构造器:子类不能继承父类的构造器,使用super(有参传参)

               只能调用父类的构造器。

               子类中的构造器,至少有一个调用了父类的构造器。

   

        super(有参传参)与this(有参传参),不能共存。

                而且只能放在首行首句。

方法的重写:

      子类可以重新编写继承父类的方法。

      (1)方法名相同,参数列表相同

      (2)返回值类型可以相同,也可以是

       父类方法的返回值类型的子类型

      (3)修饰词可以不变,或者可以比父类的修饰权限更大

父类型的变量引用子类型的对象

          变量能调用的方法与成员变量

         方法:

                  编译期: 变量只能调用出本类型中的方法

                  运行期: 变量调用出方法执行逻辑与对象的类型有关

         成员变量:

                  变量调用出的成员变量一定是本类型中的成员变量

                  如:Person p = new Student();

          p.name------>super.name

          p.age ------>super.age

          //p.score---->编译错误,p类型中没有成员变量score

 

Object:是所有引用类型的顶级父

系统都会默认使引用类型extends Object.

此类中提供了常用的方法:

1:toString():

           在Object中,返回的是类全名@HashCode值,

           即对象的内存堆中的位置信息

      

          【类有类名和类全名之分:

                 类名:即最短的名称

                 类全名:从包名开始写的名称

           如:  String 是类名

        java.lang.String是类全名                  

          】

  此方法会在输出变量时,或引用变量进行拼接时默认调用。

  而查看地址信息,通常没有必要,我们通常要查看的是

  对象的成员变量信息

 

 因此我们都需要重写toString()方法,用于查看对象的详情

  格式:

   "[成员变量1="+成员变量1+",成员变量2="+成员变量2+"]"

 

2:equals(Object obj)

  Object类型中的此方法中的逻辑是比较调用者this与形参obj

    的地址信息是否相等。

    简单说成:比较this与obj是不是同一个对象  

   所以在定义类型时,继承过来的equals方法 我们要重写。

  重写规则:

   (1)   查看传进来的obj是不是null

      if(obj==null){

        return false;

      }

   (2): 查看传进来的obj是不是this.

         if(obj==this){

          return true;

         }

   (3)   查看穿进来的obj是不是本类型

     if(obj.getClass()!=this.getClass()){

      return false;

     }

     可以改成

     if(!(obj instanceof Person)){

      return false;

     }

instanceof关键字:

 作用是判断引用变量指向的对象是否属于某一类型

语法:

 boolean f =  变量名  instanceof  类型名

 

 ==与equals()方法的区别

==判断的是基本数据类型的数据是否相等

equals()判断的是引用数据类型的数据是否相等

==比较的是不是同一个对象

equals()比较内容是否相同(地址信息)

 

package: 包.  

        作用:用于管理源文件,区分类全名

        命名规则:域名后缀.域名.项目名.模块名

        声明位置:在源文件的首行首句。

        类全名:从包开始写起的名称

        

    常用的包:

    java.lang.*,因为里面的类型非常常用。因此不需要导包

    java.util.*,此包下封装了很多常用的工具类

    java.io.*,此包下封装了io流的类型

    java.net.*,此包下封装很多关于网络的多种类型

 

import: 导包关键字:

        在class之上,package之下。

        用于声明 类的 类全名,在逻辑中就可以使用短的类名。

        优点: 可以减少代码的书写。   

 

访问权限控制修饰词

    private,protected,public,默认的(default)

    

    修饰类时:

     外部类:可以使用public和默认的

     内部类:可以使用public,protected,默认的,private

    

    修饰成员变量:四个都可以进行修饰,可见性不一样

                    本类中     同包下    不同包子类中      其他    

public            true        true            true              true

protected      true        true            true

default          true        true

private          true

 

     在实际开发中,成员变量要尽可能的设置成不可见,

     好处是,提高代码的安全性。即用private修饰

    为了在其他类中可以对成员变量进行重新设置值或者获取值

    我们可以定义相应成员变量的共有方法来进行操作。

  

  public void setName(String name){

   this.name = name;//修饰成员变量的值

  }

  public  String  getName(){

       return name;

  }   

  

   修饰方法:

         与修饰成员变量的可见性一致。

    方法的重写:     

         子类不能重写父类的私有方法  

 

修饰词final:最终的,最后的

(1)修饰类

          被final修饰的,不能再有子类了。         

(2)修饰成员变量

           可以直接初始化   

           也可以在构造器中初始化

          不能再其他任何地方再次赋值

      修饰局部变量

        只能初始化一次。

(3)修饰方法   

       被final修饰的方法,不能再子类中重写      

   常量:

        因为常量是一些特殊值,我们可以定义成final, public,static进行修饰。

 

object的toString方法输出的是地址信息

 

set get 方法

 

==与equals区别

 

类全名

猜你喜欢

转载自blog.csdn.net/K_KingoneTen/article/details/81435111