JAVA基础(11)-方法重载、构造器

在介绍方法重载前要先了解一下什么是方法

方法:
   概念:类的共同行为,封装了一段逻辑代码,在封装方法时,尽可能的只完成一项功能(避免将多个功能封装到一个方法内)
   方法的使用:方法属于对象的行为,应该使用:引用.方法,这些方法动态绑定到对象上  
   方法签名:
           方法名+形参列表=方法签名
           形参列表:指的是形参的类型顺序列表
           
       如:public void  sum(int a,int b)    
               方法签名是: sum + int,int   
               public int   eat(String food)
               方法签名是:eat +String  

方法的重载(overload):在同一个类型中,方法名相同,参数列表不同     
           在方法调用时,编译器会检查类的信息中是否有此方法签名的方法c.sum(3,5):
           此时编译器检查类中是否有c.sum(int,int)这样的方法如果有,编译通过,没有,编译失败,并提示错误       

public class Point {
	int x;//横坐标
	int y;//纵坐标
	public double distance() {
		int num = x*x+y*y;
		return Math.sqrt(num);
	}
	/**横纵坐标移动整数s*/
	public void move(int s) {
		x+=s;
		y+=s;
	}
	/**横纵坐标移动浮点数s*/
	public void move(double s) {
		/*
		 * 扩展赋值运算符,类型不一致时
		 * 会自动转成符号左边的类型
		 * 
		 * int  m = 10;
		 * double s = 5.5;
		 * m+=s;//相当于 m = (int)(m+s)
		 */
		x+=s;
		y+=s;
	}
	/**横坐标平移x,纵坐标平移y*/
	public void move(int x,int y) {
		this.x+=x;
		this.y+=y;
	}

这里我们再介绍一下java的内存管理机制

jvm将内存分成三大主要区域。
   方法区: jvm将字节码文件加载到此区域,用来存储类的信息
   堆(heap):用来存储引用类型的对象
   栈(stack):用来存储方法内的局部变量
        栈帧:是栈中的空间。当程序执行到某一个方法时,jvm专门为此方法开辟的一块独有空间,此方法内的局部变量,都在此栈帧中,当此方法结束后,栈帧消失,释放内存

构造方法(构造器):
      是特殊的方法,作用是用来给成员变量(Field,字段,属性)
      特点:
      (1)没有返回值这个位置
      (2)方法名与类型相同

    默认无参构造器:如果定义类时,没有添加构造方法,系统会默认提供一个公有的没有形式参数的构造方法
               public Point(){}
               
               注意:如果定义期间,提供了构造器,系统不再提供无参构造器。
    有参构造器:因为构造器是用来给成员变量初始化的,为了方便,所以形式参数的名称都与成员变量一致。因此,在赋值时,this.不能省略。
             
   构造器的调用:
            只能是new关键字来调用 。
            new 构造方法(有参传参)。
          
          对象的实例化:是由new完成的(对象此时就存在了,但是成员变量都是默认值)
          对象的成员变量初始化:是由new调用的构造器进行的(成员变量是第一次被赋值)             

构造器的重载:
      一个类中,可以有多个构造器。
      方法名相同,参数列表不同 

参考代码:

public class Student {
	String stuId;
	String name;
	String grade;
	int age;
	double score;
	public Student(String stuId,String name,String grade,int age,double score) {
		this.stuId = stuId;
		this.name = name;
		this.grade = grade;
		this.age = age;
		this.score = score;
	}
}

可变参数:在Java 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用

        语法:public void sum(类型名称...类型名) { }

练习代码

public void sum(int...a) {
		int sum=0;
        //可传入多个参数
		for (int i = 0; i < a.length; i++) {  
			sum+=a[i];
		}
		System.out.println(sum);
	}

持续更新中。。。。。

猜你喜欢

转载自blog.csdn.net/woainiqazwsx123/article/details/81292454