Object ,package,修饰词,final

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 类型名

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进行修饰。

猜你喜欢

转载自blog.csdn.net/qq_42822008/article/details/81434320