java学习Day09--面向对象(下)

构造方法

​ 创建对象

​ 特点:

​ 构造方法名字与类名相同.

​ 没有返回值,且不需要void修饰.

​ 每个类中默认会有一个无参的构造方法

​ 也可以定义有参数的构造方法, 一旦定义了有参的构造方法,默认无参的就会失效

​ 一个类中可以有多个构造方法,通过方法的参数区分.

/**
     * 类中默认有一个元素的构造方法
     */
    public  People(){
    
    
        System.out.println("调用构造方法");
    }
    /**
     * 还可以在类中定义有参数的构造方法,一旦定义,默认元素的就会失效
     */
    public People(String n){
    
    
        name=n;
        System.out.println("有参数的构造方法创建一个People对象");

    }
    public People(String n, int a){
    
    
        name=n;
        age=a;
    }


	People w = new People();//无参的
	w.Play();

    People z=new People("田");//一个参数
    System.out.println(z.name);

    People wing = new People("赵",21);//两个参数
    System.out.println(wing.name+wing.age);

方法的重载(overload)

在同一个类中出现多个方法名相同的现象–方法的重载

方法名相同时,如何区分方法:

​ 1.参数的个数

​ 2.参数的类型

​ 3.参数的顺序

对象与引用

值传递

public class Reserve {
    
    
/*值传递*/
    public static void main(String[] args) {
    
    
        int a = 10;
        Reserve r1 = new Reserve();
        r1.test(a);//基本类型数据  是直接将值传递给其他的变量
        System.out.println(a);
    }

    public void test(int t){
    
    
        System.out.println(t);
        t=5;
        System.out.println(t);
    }
}

运行结果:

10
5
10

引用调用

 /*引用调用*/
   public static void main(String[] args) {
    
    
        Dog dog = new Dog();
        dog.name="哈";
        r2.test1(dog); //引用类型 传递的是对象的地址 并不是对象本身
        System.out.println(dog.name);
    }
    public void test1(Dog dog1){
    
    
        System.out.println(dog1.name);
        dog1.name="嘿";
        System.out.println(dog1.name);
    }
哈
嘿
嘿

猜你喜欢

转载自blog.csdn.net/XiaoFanMi/article/details/110096436
今日推荐