Java第06章-方法和方法重载

35 篇文章 1 订阅

目录

构造方法

Java构造方法的定义规则:

构造方法:

方法重载

关键字this

局部变量和全局变量


构造方法

        Java类中有一种特殊的成员方法,成为构造方法。它没有返回类型,也不是void型,它的作用是创建该类的对象并初始化成员变量。在创建对象时,会自动调用类的构造方法。

Java构造方法的定义规则:

        构造方法必须与该类具有相同的名字,并且没有方法的返回类型,包括void。构造方法一般都应该用public类型,这样才能在程序任意位置创建对象

语法

访问修饰符  构造方法名(形式参数列表){

        方法体

}

构造方法:

1.每个类中至少有一个构造方法,如果类中没有定义构造方法,Java将提供一个默认的构造方法,该构造方法没有参数,方法体为空。如果一个类中已经定义了构造方法,系统就不再提供默认的构造方法。

2.创建类时,建议为该类写一个默认构造方法。因为Java的特点是只要写一个构造方法,java就不会自动提供默认构造方法,因此除了常用的构造方法外,还应增加一个默认的构造方法。

public class Student {
	//定义Student类的属性
	String name;
	int age;
	String sex;
	String calss;
	
	//定义系统默认的无参构造方法
	public Student(){
		
	}
	//定义有参构造方法
	public Student(String str1, int num , String str2 , String str3){
		name = str1;
		age = num;
		sex = str2;
		calss = str3;
	}
}
    public static void main(String[] args) {
		//使用无参构造方法创建Student类对象
		System.out.println("无参构造方法");
		Student student01 = new Student();
		student01.name = "张三";
		student01.age = 18;
		student01.sex = "男";
		student01.calss = "java 一班";
		System.out.println("姓名:"+student01.name + "    年龄:"+student01.age 
		+ "    性别:"+student01.sex +"    班级:"+student01.calss);
		
		//使用有参构造方法创建Student类对象
		System.out.println("有参构造方法");
		Student student02 = new Student("李四" , 20 , "男" , "java 二班");
		System.out.println("姓名:"+student02.name + "    年龄:"+student02.age 
				+ "    性别:"+student02.sex +"    班级:"+student02.calss);
	}


方法重载

在同一个类中,方法可以都多种重载,多个方法的方法名相同,参数列表不同,就构成了方法重载。

方法重载特点:

        1.在同一个类中进行方法重载。

        2.方法重载的方法名相同。

        3.方法重载的参数列表中,参数个数或数据类型不同。

        4.方法重载与返回值、访问修饰符无关。

public class Student {
	//定义2个int类型数据相加的方法
	public int sum(int a , int b){
		return a+b;
	}
	//定义1个int类型数据和1个double类型数据相加的方法
	public double sum(int a , double b){
		return a+b;
	}
	//定义3个double类型数据相加的方法
	public double sum(double a , double b , double c){
		return a+b+c;
	}
}
	public static void main(String[] args) {
		//创建Student对象
		Student student = new Student();
		//2个int类型数据相加的方法
		int result01 = student.sum(6, 4);
		System.out.println("2个int类型数据相加的方法:"+result01);
		//1个int类型数据和1个double类型数据相加的方法
		double result02 = student.sum(10, 5.0);
		System.out.println("1个int类型数据和1个double类型数据相加的方法:"+result02);
		//3个double类型数据相加的方法
		double result03 = student.sum(7.0, 4.0,9.0);
		System.out.println("1个int类型数据和1个double类型数据相加的方法:"+result03);
	}


关键字this

在方法中给引用来属性的隐藏变量赋值时必须要使用this关键字。关键字this是用来指向当前对象或类实例的,可以用“this.变量名”或“this.方法名”访问类中的变量或调用类方法。

关键字this的用法:

        调用属性:“this.变量名”

        调用方法:“this.方法名”

        调用构造方法:“this()”,必须放在构造方法的第一条语句

public class Student {
	//定义Student类的属性
	String name;
	int age;
	String sex;
	String calssRoom;
	
	//定义系统默认的无参构造方法
	public Student(){
		System.out.println("Hello Java");
	}
	//定义有参构造方法
	public Student(String name, int age , String sex , String classRoom){
		this();
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.calssRoom = classRoom;
	}
public class StudentTest {
	
	public static void main(String[] args) {
		//使用有参构造方法创建Student类对象
		System.out.println("有参构造方法");
		Student student = new Student("李四" , 20 , "男" , "java18班");
		System.out.println("姓名:"+student.name + "    年龄:"+student.age 
				+ "    性别:"+student.sex +"    班级:"+student.calssRoom);
	}
}


局部变量和全局变量

变量生命的位置决定变量的作用域。

变量作用域确定可在程序中按变量名访问该变量的区域。

局部变量VS全局变量

作用域不同

1.局部变量的作用域仅限于定义它的方法。

2.全局变量的作用域在整个类内部都是可见的。

初始值不同

1.Java会全局变量一个初始值。

2.Java不会给局部变量赋予初始值。

注意:

在同一个方法中,不允许有同名的局部变量,在不同的方法中,可以有同名的局部变量。

在同一个类中,全局变量和局部变量同名是,局部变量具有更高的优先级。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值