zoukankan      html  css  js  c++  java
  • 最终类object 和内部类

    Object 类

         性质:【1】是所有类的根类。

                            【2】如果一个类没有显示继承另外一个类,那么该类一定继承于Object

                 toString() 返回对象的字符串表示形式

             特殊:【1】输出对象时,默认调用toString方法,返回类型@内存地址

              Object obj = new Object();
                  // 输出对象时,默认调用toString方法
                  System.out.println(obj.toString);

                   equals(Object obj) 用于判断两个对象是否相等。

        【1】== 比较两个对象的内存地址或基本数据类型的比较,

        【2】object默认equals实现比较内存地址。

        【3】当自定义对象时,要比较自定义对象是否相等,就必须通过equals方法比较两个对象属性值是否相等,那就必须重写Object的equals方法。

        快捷方法

       

     内部类  

        在java中,一个文件可以定义多个类,文件名必须和public 类型的类的类名保持一致。编译后 out$info

        在java中,一个类也可以定义在一个类的内部,定义在内部的类称为内部类(inner class),定义在外部的类称为外部类(out class).

                  特性:内部类可以拥有属性和方法和构造器和块 一般而言,内部类都用默认修饰符 

                             [1]内部类如何创建对象

          外部类  . 内部类  引用 = new 外部类() .  new  内部类();

           或者先创建一个外部类

              外部类   外部类的引用 = new 外部类  ();
               内部类   引用 =  外部类的引用  . new 内部类();     

           [2] 内部类中可以访问外部类的私有变量

    public class Outer {
        
        private String name = "Outer";
        
        class Inner{
            
            public void showInfo() {
                            //访问外部私有变量
                System.out.println(name);
            }
            
        }
    }
        

                          特殊情况:外部类和内部类的普通变量同名

        class Inner{
            
            private String name = "Inner";
            
            public void showInfo() {
                 String name = "show info";
                
                // 访问内部类的私有成员
                System.out.println(this.name);
                
                // 访问外部类的私有成员
                System.out.println(Outer.this.name);
                
            }
        }
    }  

        【1】 静态内部类创建对象

         
             Inner inner = new Outer.Inner();
    
             inner.showInfo();
    
    

        【2】静态内部类可以访问外部类的(私有)静态成员

        注意【1】静态内部类访问外部普通成员(非静态成员),需要创建外部一个对象才能访问成员

          【2】特殊情况内部类和外部类定义静态变量名称相同      

                外部类.属性
              //内部类访问
               内部类.属性   
               this.属性  

               

          方法内部类

                   定义到一个方法中,成为方法内部类

          【1】 方法的局部变量进入方法内部类时,被加final修饰。出了方法内部类后,final被去掉。

          【2】方法内部类拥有属性和方法和构造器和块 一般而言,方法内部类都用默认修饰符

        匿名内部类

          意义:只使用一次,我们可以把类声明为匿名类。匿名类一般和内部类结合使用,形成匿名内部类

                // 方法内部类
            /*class Inner implements MyInterface{
    
                @Override
                public void showInfo() {
                    System.out.println("Inner:showInfo");
                }
                
            }*/
            
            /*Inner inner = new Inner();
            inner.showInfo();*/
            
            // new Inner().showInfo();
            
            // 匿名内部类   
            new MyInterface(){
                @Override
                public void showInfo() {
                    System.out.println("Inner:showInfo");
                }
            }.showInfo();

        

          

  • 相关阅读:
    设计模式之动态代理
    设计模式之单例模式
    WinDbg调试高内存的.Net进程Dump
    ping 和 远程桌面 与防火墙的关系
    log4net性能小探
    html页面缓存问题
    casperjs在拆分文件后的中文乱码问题的解决
    casperjs userAgent的一些问题
    浅谈并查集
    当你感到学习困难的时候,你在走上坡路!
  • 原文地址:https://www.cnblogs.com/dedema/p/10776753.html
Copyright © 2011-2022 走看看