方法的重载和构造

方法的重载和构造

方法的签名

方法名+参数列表

方法的重载----------------方便用户的调用

  1. 发生在同一类中,方法名相同,参数列表不同,方法体不同

  2. 编译器在编译时会根据方法的签名自动绑定调用的方法

  3. 重载与返回值类型无关

  4. 重载与参数名称无关

    package oo.day02;
    
    public class Aoo {
    	void show(){}
    	void show(int age){}
    	void show(String name){}
    	void show(String name,int age){}
    	void show(int age,String name){}
    	//int show(){return 1;}//编译错误,重载与返回值无关
    	//void show(Srting adress){}//编译错误,重载与参数名称无关
    
    }
    
    package oo.day02;
    //重载的演示
    public class OverloadDemo {
    
    	public static void main(String[] args) {
    		Aoo o = new Aoo();
    		o.show();
    		o.show(26);
    		o.show("yasuo");
    		o.show(26, "yauso");
    		o.show("yauso", 26);
    
    	}
    }
    

构造方法------------------复用给成员变量赋初值的代码

  1. 给成员变量赋初值
  2. 与类同名,没有返回值类型(连void都没有)
  3. 在创建(new)对象时被自动调用
  4. 若自己不写构造方法,则编译器默认提供一个无参构造方法
  5. 若自己写了构造方法,则不再默认提供
  6. 可以重载
class Student;
   String name;//成员变量(在整个类中使用)
   int age;
   String adress;
   Student(String name1,int age1,String adress1){//构造方法
       name = name1;//局部变量(只能在当前方法中使用)
       age = age1;
       adress = adress1;
   }

成员变量和局部变量是可以同名的

  • 使用的时候默认采用就近原则
  • 此时访问成员变量时this不能省略
  • 当成员变量和局部变量同名时,若想访问成员变量时this不能省略
class Student;
   String name;//成员变量(在整个类中使用)
   int age;
   String adress;
   Student(String name,int age,String adress){//构造方法
       this.name = name;//局部变量(只能在当前方法中使用)
       this.age = age;
       this.adress = adress;
   }

this

  1. 指代当前对象,哪个对象调用方法它指的就是哪个对象
  2. 只能用在方法中,方法中访问成员变量之前默认有个this.

this的用法

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

    ​ --------------------当成员变量与局部变量同名时,访问成员变量之前的this不能省略

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

  3. this()----------------------------------调用构造方法(很少用)

package oo.day02;
//学生类
public class Student {
	//成员变量
	String name;
	int age;
	String address;
	
	//构造方法
	Student(String name,int age,String address){
		this.name = name;
		this.age = age;
		this.address = address;
	}
	
	//方法
	void study(){
		System.out.println(this.name+"在学习");
	}
	void sayHi(){
		System.out.println("大家好我是"+this.name+"今年"+this.age+"岁了,家住"+this.address);
	}

}
package oo.day02;
//构造
public class consDemo {

	public static void main(String[] args) {
		Student zs = new Student("zhangsan",26,"BJ");
		Student ls = new Student("lisi",27,"SH");
		zs.sayHi();
		ls.sayHi();

	}

}

随机数

x = (int)(Math.random()*353)//0到352
    
Randow rand = new Randow();
x = rand.nexInt(353);//0到352

null和NullPointerException

内存管理:由JVM管理的

  1. 堆:new出来的对象(包括成员变量)
  2. 栈:局部变量
  3. 方法区

null

表示空,没有指向对象

  1. 若引用的值为null,则该引用不能再进行任何操作
  2. 若操作则发生NullPointException空指针异常
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值