• Java面向对象的编程


      类的多态性:

        Java语言中含有方法重载与成员覆盖两种形式的多态:(区别于c++)

        方法重载:在一个类中,允许多个方法使用同一个名字,但方法的参数不同,完成的功能也不同。
        成员覆盖:子类与父类允许具有相同的变量名称,但数据类型不同,允许具有相同的方法名称,但完成的功能不同。

      类:class  对象:object   实例:Instance


      创建属于某类的对象,需要通过下面两个步骤来实现:
        1、  声明指向"由类所创建的对象"的变量
        2、  利用new创建新的对象,并指派给先前所创建的变量。  
      举例来说,如果要创建Person类的对象,可用下列的语句来实现:
      方法一:

        Person p ; // 先声明一个Person类的对象p
        p = new Person() ;   // 用new 关键字实例化Person的对象p

      方法二:  
          Person p = new Person() ;  // 声明Person对象p并直接实例化此对象
    匿名对象:

      “匿名对象”,顾名思义,就是没有明确的声明的对象,也可以简单理解为只使用一次的对象,即没有任何一个具体的对象名词引用它;

        System.out.println(new Person().talk() );   //声明了一个匿名对象,调用Person类中的()方法;

    用new Person() 声明的对象并没有赋给任何一个Person类对象的引用,所以此对象只使用一次,之后就会被java 的垃圾收集器回收;

      对象的比较:

        有两种方式可用于对象间的比较,它们是 "=="运算符与equals()方法,

      “==” 操作符用于比较两个对象的内存地址值是否相等,

      equals( )方法用于比较两个对象的内容是否一致;

    下面两种String对象的声明方式到底有什么不同?

      String  str1 =  new String("java");

      String  str2 = "java";

    public class StringDemo
    {
        public static void main(String args[])
        {   
            String str1 = "java";
            String str2 = new String("java");
            String str3 = "java";
    
            System.out.println("str1 == str2?" + (str1==str2));
            System.out.println("str1 == str3?" + (str1==str3));
            System.out.println("str2 == str3?" + (str2==str3));
        }   
    }

      str1 == str2?false
      str1 == str3?true
      str2 == str3?false

    由程序输出结果可以发现,str1 与 str3相等,这是因为 "==" 是用来比较内存地址值的;

    str1 与 str3  相等,则证明str1 与 str3 是指向同一个内存空间的;

  • 相关阅读:
    Layout布局
    了解java虚拟机—串行回收器(6)
    了解java虚拟机—JVM相关参数设置(2)
    了解java虚拟机—堆相关参数设置(3)
    了解java虚拟机—垃圾回收算法(5)
    了解java虚拟机—并行回收器(7)
    了解java虚拟机JVM的基本结构(1)
    了解java虚拟机—非堆相关参数设置(4)
    了解java虚拟机—CMS回收器(8)
    求FTP协议规范中文版
  • 原文地址:https://www.cnblogs.com/chris-cp/p/3849510.html
Copyright © 2020-2023  润新知