zoukankan      html  css  js  c++  java
  • 面向对象的简单理解五

    • Object类:重要的是所有类的父类,里面有两个方法 toString及equals,
    • 所有的类否会覆写这两个方法
    Code
    // Object类是所有类的父类,如果一个类没有明确声明继承自那个类
    // 则肯定会继承Object类
    class Person// extends Object
    {
        
    public String toString()
        {
            
    return "Hello MLDN" ;
        }
    };
    public class OODemo01
    {
        
    public static void main(String args[])
        {
            Person p 
    = new Person() ;
            
    // 默认情况下打印对象,实际上就相当于调用对象中的toString方法
            System.out.println(p) ;//这个等价与
    System.out.println(p.toString)打印结果都是P的地址
    //通过此我们可以覆写toString方法来完成,对各个类的打印不同
        }
    };
    • 看下equals方法的覆写:
    Code
    class Person// extends Object
    {
        
    private String name ;
        
    private int age ;
        
    public Person(String name,int age)
        {
            
    this.name = name ;
            
    this.age = age ;
        }
        
    public boolean equals(Object obj)
        {
            
    if(!(obj instanceof Person))
            {
                
    return false ;
            }
            Person per1 
    = this ;
            Person per2 
    = (Person)obj ;
            
    boolean flag = false ;
            
    if(per1==per2)
            {
                
    // 判断是否是同一个引用
                flag = true ;
            }
            
    else
            {
                
    if(per1.name.equals(per2.name)&&per1.age==per2.age)
                {
                    flag 
    = true ;
                }
            }
            
    return flag ;
        }
        
    public String toString()
        {
            
    return "姓名:"+this.name+",年龄:"+this.age ;
        }
    };
    public class OODemo04
    {
        
    public static void main(String args[])
        {
            Person p1 
    = new Person("AAAAA",30) ;
            
    // Person p2 = new Person("AAAAA",30) ;
            Person p2 = p1 ;//这样二者都是指的一个对象可以通过==来判断
            System.out.println(p1.equals(
    "abc")) ;//防止不是传的person类可以进行instanceOf判断
        }
    };
    • 内部类,在图形化开发中用的比较多
    Code
    class Outer
    {
        
    private String info = "AAA --> BBBB" ;
        
    // 内部类
        class Inner
        {
            
    public void print()
            {
                System.out.println(
    "INFO = "+info) ;
            }
        };
    };
    public class OODemo07
    {
        
    public static void main(String args[])
        {
            Outer o 
    = new Outer() ;
            Outer.Inner in 
    = o.new Inner() ;
            in.print() ;
        }
    };
    Code
    class Outer
    {
        
    private String info = "AAA --> BBBB" ;
        
    public void fun(final int len)//在方法中要是让内部类可以使用方法中的变量,则前面必须加上final,这个只是标记
        {
            
    class Inner
            {
                
    public void print()
                {
                    System.out.println(
    "len = "+len) ;
                    System.out.println(
    "INFO = "+info) ;
                }
            };
            
    new Inner().print() ;
        }
    };
    public class OODemo08
    {
        
    public static void main(String args[])
        {
            
    new Outer().fun(10) ;
        }
    };
    • 匿名内部类:这个内部类只是用一次以后再也不会使用,匿名内部类实在抽象类和接口的基础上发展出来的
    Code
    interface A
    {
        
    public void fun() ;
    }
    class C
    {
        
    public void fun2()
        {
            
    this.print(new A()
                {
                    
    public void fun()
                    {
                        System.out.println(
    "AAA --> BBBB") ;
                    }
                }
            ) ;
        }
        
    public void print(A a)
        {
            a.fun() ;
        }
    };
    public class OODemo10
    {
        
    public static void main(String args[])
        {
            
    new C().fun2() ;
        }
    };
    • 异常:ArithmeticException,ArrayIndesOutBandsException,ArrayStoreException,IOException,FileNotFoundException,NullPointerException
    • finally 不管程序是否出现异常,都要执行,一般用于释放资源
  • 相关阅读:
    类的继承,抽象类和接口
    什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
    php 中 SERVER 服务器参数
    数组与对象互换方法
    php实现二维数组查找功能【array_search 和 array_column】
    php基础知识点列表【2020年10月7日】
    json_encode 中文及特殊斜杆的编码
    吴裕雄--天生自然ANDROID开发学习:2.5.8 Notification(状态栏通知)详解
    吴裕雄--天生自然ANDROID开发学习:2.5.7 Toast(吐司)的基本使用
    吴裕雄--天生自然ANDROID开发学习:2.5.6 ViewFlipper(翻转视图)的基本使用
  • 原文地址:https://www.cnblogs.com/zhxiaomiao/p/1411092.html
Copyright © 2011-2022 走看看