Object类(重写的两个方法)--instanceof关键字--包的使用--import关键字--4个访问权限控制修饰符--final修饰词

*Object:是所有引用类型的父类
                   系统都会默认使用引用类型 extends Object.
                   此类中提供了常用的方法:
     --toString()
                       在Object中,返回的是类全名@HashCode值
                       即对象在内存堆中的位置信息
      
                       类有类名和类全名之分:
                       --  类名:即最短的名称                     String 
                       --  类全名:从包名开始写的名称      java.lang.String


                       此方法会在输出变量时,或引用变量进行拼接时默认调用
                       而查看地址信息,通常没有必要,我们要查看的是"对象的成员变量信息"
                       因此,我们都需要重写toString()方法,用于查看对象的详情
                     

                        格式:
                       "[成员变量1="+成员变量1+","+"成员变量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关键字:
                      前一个操作数通常是引用类型变量,后一个操作数通常是一个类/接口
        ###:instanceof 操作符前面操作数的编译时类型要么与后面的类相同
                                  要么与后面的类具有父子继承关系
                                  否则会引起编译错误
                      作用:    判断引用变量指向的对象是否属于某一类型
               语法:
                        boolean f =  引用类型变量名  instanceof  类型名
                          


*package:包
  
               作用: 用于管理源文件,区分类全名
        命名规则: 域名后缀.域名.项目名.模块名(Oracle建议使用公司的域名倒写来作为包名)
                            如果该模块下还包括多种类型的组件,则还会建立对应的子包
        声明位置: 在源文件的首行首句     
        类全名:  从包开始写起的名称(包名+类名)
        ###(1):源文件里使用package语句指定包名
              (2):class文件必须放在对应的路径下
              (3):如果没有显式指定package语句,则处于默认包下(企业开发中,不建议)
        
--常用的包:
    java.包名.*:  代表导入这个包下的所有类  
       
    java.lang.* ,  因为里面的类型非常常用,因此不需要导包
    java.util.* ,此包下封装了java的大量工具类/接口和集合框架类/接口,如:Arrays,List,Set等
    java.io.*   ,  此包下封装了io流的类型
    java.net.*  ,  此包下封装很多关于网络的多种类型
    java.text.* ,  此包下包含了一些java格式化相关的类
    java.sql.*  ,  此包下包含了java进行JDBC数据库编程的相关类/接口
    java.awt.*  ,  此包下包含了抽象窗口工具集的相关类/接口,这些类主要用于构建图形用户                             界面(GUI)程序
    java.swing.*, 此包下包含了Swing图形用户界面编程的相关类/接口,这些类可用于构建平                            台无关的GUI程序

--import:导包关键字
              在class之上,package之下
              用于声明类的类全名,在逻辑中就可以使用短的类型名
              优点:
                   可以减少代码的书写

                 
    ###:import static:静态导入
        (1)导入指定类的单个静态成员/方法
              --import static 包.子包....类名.变量名|方法名
        (2)导入指定类的全部成员变量/方法
              --import static 包.子包....类名.*
         
    import和import static的区别:
                   使用import可以省略书写包名
                   使用import static 可以连类名也省略                        


*访问权限控制修饰词:
          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)修饰局部变量:
             只能初始化一次.(使用前初始化即可)
(4)修饰方法:
             不能在子类中重写.(可以避免某些子类"不经意"的重写) 
        


 

猜你喜欢

转载自blog.csdn.net/yk_3215123/article/details/81462028