ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

面向对象02:方法的重载

2021-03-05 23:58:50  阅读:118  来源: 互联网

标签:02 String int 面向对象 student Student 重载 println public


一、重载(overload)

  1. 发生在一个类中

  2. 方法的签名:方法名+参数列表。一个类中有且只有一个签名

  3. Java语言中,允许多个方法的名称相同,但参数列表不同,称之为方法的重载(overload)编译器根据签名绑定调用方法。注:视为方法名相同的不同方法

例如:System.out.println(); 其中println()使用了方法的重载。

/**
 * 1.同一个文件中,可以包含多个类(实际中只能写一个)
 * 2.public的类只能有一个
 * 3.必须和文件命相同
 */
public class OverloadDemo {
    public static void main(String[] args) {

    }
}
class Aoo{
    void say(){}
    void say(String s){}
    void say(String s, int num){}
    void say(int num, String s){}
//    void say(int num, String asd){}与参数名称无关,与类型有关
//    int say(String s, int num){return 0;}重载与返回值无关
}

二、构造方法

作用:

  1. 给成员变量赋值;

  2. 构造方法名与类名相同,没有返回值类型;

  3. 在new对象的时候被调用;

  4. 类有一个默认的无参构造方法,如果存在有参构造(建议必要写一个无参构造方法),不会调用无参构造方法;

  5. 构造方法可重载。

三、this

  1. 只能用在方法中,方法中使用成员变量,默认前面都有一个this

  2. 方法访问成员变量时使用this(可以被省略),构造方法中不可省略。

  3. 当成员变量和局部变量重名时,this不能省略

  4. this表示该对象的代词,那个对象调用方法,this就是该对象。谁调就是谁;

注意:数字、_、$在特殊情况下使用

用法:

  1. 访问成员变量:this.成员变量名

  2. 调用方法:this.方法名()(一般不用)

  3. 调用构造方法:this()

/**
 * 学生类
 */
public class Student {
    private String name;
    private int age;
    private String address;

    public Student() {
        this(null);
    }

    public Student(String name) {
        this(name,0);
    }

    public Student(String name, int age) {
        this(name,age,null);
    }

    public Student(String name, int age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }
}
/**
 * 在同一个包中类,可以直接使用包下的其他类不需要导包
 */
public class StudentText {
    public static void main(String[] args) {
        Student student = new Student();
        Student student1 = new Student("xiangming");
        Student student2 = new Student("asdf",23);
        Student student3 = new Student("wsdf",12,"sdfsafd");
        System.out.println("student = " + student);
        System.out.println("student1 = " + student1);
        System.out.println("student2 = " + student2);
        System.out.println("student3 = " + student3);
    }
}

null和nullpointerexception

null:空,没有任何指向,此时再去点,必定会报空指针异常

引用类型之间画等号

赋值的是地址,多个引用指向同一个地址,其中一个内容修改,必定会影响其他引用的值,因为指向相同。

基本数据之间划等号

赋值的是实际的值,对一个值修改,其他的不变,互不影响

public class NullDemo {
    public static void main(String[] args) {
        Student student = new Student("lj",12,"asdf");
        //赋值的是地址
        Student ls = student;
        System.out.println("student = " + student);
        ls.setAge(18);
        System.out.println("student = " + student);
	
        int a = 5;
        int b = a;
        //对值的修改
        b = 6;
        System.out.println("a = " + a);
        //将student设置为空,此时会有异常
        student = null;
        System.out.println("student = " + student.getAge());
    }
}

最后声明,以上内容是自己的学习、总结的,分享给大家。如果有不当的地方还请大佬指正交流!

标签:02,String,int,面向对象,student,Student,重载,println,public
来源: https://blog.csdn.net/L_jianjian/article/details/114419839

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有