面向对象(六)

91 阅读2分钟

一、万事万物皆对象

理解:

  1. 在Java语言的范畴中,我们都将功能、结构等封装到类中,通过类的实体化,来调用具体的功能结构。

如:

  • Scanner,String等
  • 文件:File
  • 网络:URL
  1. 涉及到Java语言与前端Html、后端的数据库交互时,前后端的结构Java层面交互时,都体现为类,对象。

二、内存解析的说明

引用类型的变量,只可能存储两类值:null 或 地址值(含变量的类型)

三、匿名对象的使用

  1. 理解:我们创建的对象,没有显式的赋给一个变量名。即匿名对象。
  2. 特征:匿名对象只能调用一次。
  3. 使用:
class Test{
    public static void main(String[] args){
        // 匿名对象的方式
        System.out.println("请输入一个数字:");
        int num = new Scanner(System.in).nextInt();
        System.out.println("输入的数字为:" + num);
    }
}

重载对象:

方法的重载(overload)

定义:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

  • "两同一不同":同一个类、相同方法名.
  • 参数列表不同:参数个数不同,参数类型不同。

举例:Arrays类中重载的sort()/binarySearch()。

判断一个方法是否是重载,跟方法的权限修饰符、返回值类型、形参变量名、方法体都没有关系!

在通过对象调用方法时,如何确定某一个指定方法:①方法名 ②参数列表

public class Sum{
    // 整数加法
    public int sum(int x,int y){
        return x + y;
    }
    // 浮点数加法(重载方法)
    public double sum(double x,double y){
        return x + y;
    }
}

可变个数形参

可变个数形参的方法为jdk 5.0新增的内容。

具体使用:

  1. 可变个数形参的格式:数据类型...变量名。
  2. 当调用可变个数形参的方法值,传入的参数个数可以是零个,一个,两个,或多个。
  3. 可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载。
  4. 可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不能构成重载(二者不能共存)。
  5. 可变个数形参在方法的形参中,必须声明在末尾。
  6. 可变个数形参在方法的形参中,最多只能声明一个可变形参。
public class MethodArgsTest {
    public static void main(String[] args) {
        MethodArgsTest test = new MethodArgsTest();
        test.show(12);
        test.show("hello");
        test.show("Hello","World");
        test.show();
        /**test.show(new String[]{"AA","BB","CC"});*/
    }
    public void show(int i){
        System.out.println("show(int)");
    }
    public void show(String s){
        System.out.println("show(String)");
    }
    public void show(String...s){
        System.out.println("show(String...strs)");
    }
    // 等价于此方法
    public void show(String[] s){

    }
}