Java学习(七)方法重载、可变参数、作用域、构造方法


前言

本篇文章介绍了 Java 的方法重载、可变参数、作用域、构造方法。


一、方法重载(Overload)

1. 基本介绍

java 中允许同一个类中,多个同名方法的存在,但要求形参列表不一致!重载的好处:1.减轻了起名的麻烦 2.减轻了记名的麻烦。

2. 重载的注意事项

  1. 方法名:必须相同
  2. 形参列表:必须不同(形参类型或个数或顺序,至少有一样不同,参数名无要求)
  3. 返回类型:无要求,注意返回类型不一样不能构成方法的重载

二、可变参数

1. 基本概念

java 允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法

public class VarParameter01 {
 //编写一个main方法
	public static void main(String[] args) {
		 HspMethod m = new HspMethod();
		 System.out.println(m.sum(1, 5, 100)); //106
		 System.out.println(m.sum(1,19)); //20
	 }
 }

class HspMethod {
 	//可以计算 2个数的和,3个数的和 , 4.5, 。。
	//可以使用方法重载
	public int sum(int n1, int n2) {//2 个数的和
		return n1 + n2;
	}
 
 	public int sum(int n1, int n2, int n3) {//3 个数的和
		return n1 + n2 + n3;
	}
	public int sum(int n1, int n2, int n3, int n4) {//4 个数的和
		return n1 + n2 + n3 + n4;
	}
 


//上面的三个方法名称相同,功能相同, 参数个数不同-> 使用可变参数优化

//1.int...表示接受的是可变参数,类型是int,即可以接收多个int(0-多)
//2.使用可变参数时,可以当做数组来使用即nums可以当做数组
//3.遍历nums求和即可
public int sum(int...nums){
	 System.out.println("接收的参数个数="+nums.length);
	 int res = 0;
	 for(int i = 0; i < nums.length; i++){
	 	res += nums[i];
	 }
	 return	res;
	 }
 }

2. 注意事项和使用细节

  1. 可变参数的实参可以为 0 个或任意多个。
  2. 可变参数的实参可以为数组。
  3. 可变参数的本质就是数组。
  4. 可变参数可以和普通类型的参数一起放在形参列表,但必须保证可变参数在最后。
  5. 一个形参列表中只能出现一个可变参数。

三、作用域

1. 基本介绍

在 java 编程中,主要的变量就是属性(成员变量)和 局部变量。局部变量一般是指在成员方法中定义的变量。
全局变量:也就是属性,作用域为整个类
局部变量:除了属性之外的其他变量作用域为定义它的代码块中。
全局变量可以不赋值,直接使用,因为有默认值,局部变量必须赋值后,才能使用,因为没有默认值。

2. 注意事项和使用细节

  1. 属性和局部变量可以重名,访问时遵循就近原则
  2. 在同一个作用域中,比如在同一个成员方法中,两个成员变量不能重名。
  3. 属性生命周期较长,伴随着对象的创建而创建,伴随着对象的销毁而销毁。局部变量,生命周期较短,伴随着它的代码块的执行而创建,伴随着代码块的结束而死亡,即在一次的方法调用过程中。
  4. 作用域不同,全局变量:可以被本类使用或其他类使用(通过对象调用),局部变量:只能在本类中对应的方法中使用。
  5. 修饰符不同,全局变量/属性可以加修饰符,局部变量不可以加修饰符。

四、构造方法/构造器

1. 基本介绍

基本语法

   【修饰符】方法名(形参列表){
		方法体;	
	}
  1. 构造器的修饰符可以默认,也可以是public protected private
  2. 构造器没有返回值
  3. 方法名和类名字必须一样
  4. 参数列表 和 成员方法一样的规则
  5. 构造器的调用系统完成

基本介绍

构造方法又叫构造器(constructor),是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。它的几个特点:

  1. 方法名和类名相同
  2. 没有返回值
  3. 在创建对象时,系统会自动的调用该类的构造器完成对象的初始化

2. 注意事项和使用细节

  1. 一个类可以定义多个不同的构造器,即构造器重载
  2. 构造器是完成对象的初始化,并不是创建对象(对象已经创建)
  3. 如果程序员没有定义构造器,系统会自动给类生成一个默认无参构造器(也叫默认构造器)
  4. 一旦定义了自己的构造器,默认的构造器就覆盖了,就不能再使用默认的无参构造器(Person p = new Person() 无法使用),除非显示的定义一下

3. 什么是 this

java虚拟机会给每个对象分配 this,代表当前对象。简单的说,哪个对象调用,this就代表哪个对象。
this 的理解
this 的注意事项和使用细节

  1. this 关键字可以用来访问本类的属性、方法、构造器
  2. this 用于区分当前类的属性和局部变量
  3. 访问成员方法的语法:this.方法名(参数列表)
  4. 访问构造器语法:this(参数列表);注意只能在构造器中使用,即只能在构造器中访问另外一个构造器,且必须放置在第一个语句
  5. this 不能在类定义的外部使用,只能在类定义的方法中使用
class Test{
	String name = "jack";
	int num = 100;
	
	public void f3(){
		String name = "smith";
		System,out.println(name + "" + num); //smith 100
		System,out.println(name + "" + num); //jack 100
	}
	
}

  • 29
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值