JAVA基础
构造方法
方法头标识
方法头标识由 方法名+参数表,共同组成的整体,用来唯一标识调用方法。
方法重载
//本实例,构造两个构造方法,分别是无参和传半径的,两个构造方法头。
package test;
public class Circle {
public String name; ///名称
double radius; //radius
public Circle() { //与类名相同,无参数构造
this.name="椭圆,无参数";
this.radius=5;
System.out.println("构造初始化半径"+radius);
}
public Circle(String name,double r) { //传参构造
this.name=name;
this.radius=r;
}
public void getArea() { //方法
double area=Math.PI*this.radius*this.radius;
System.out.println("半径为"+radius+" 面积:"+area);
}
}
调用举例
package test;
public class Test {
public static void main(String[] args) {
double r1=5;
Circle c= new Circle(); //无参调用,半径为5
System.out.println("c的半径初始值:"+c.radius);
Circle c1=new Circle(100);
System.out.println("调用后值:"+c1.radius);
}
}
输出结果
构造初始化半径5.0
c的半径初始值:5.0
有参数调用,半径参数100.0
r1调用后值:100.0
引用传递
定义方法时,形参的数据类型是基本类型,调用方法时,是简单值传递,调用方法体重新开辟了临时的接收内存变量空间,不影响原有参数值的变化。
定义方法时,形参是引用传参(对象类型),调用方法时,实参到形参的传递是引用传递,传递的是对象的地址,场景举例,大家共同操作的在线协同表格,实参是表格地址,形参操作对象是 实参穿过来地址对应的表单,所以改动会影响原有对象值。
实体圆类
//实体类
package test;
public class Circle {
public String name; ///名称
double radius; //radius
public Circle() { //与类名相同,无参数构造
this.name="椭圆,无参数";
this.radius=5;
System.out.println("构造初始化半径"+radius);
}
public Circle(String name,double r) { //传参构造
this.name=name;
this.radius=r;
}
public void getArea() { //方法
double area=Math.PI*this.radius*this.radius;
System.out.println("半径为"+radius+" 面积:"+area);
}
public void getName() { //方法
System.out.println(name);
}
}
调用举例
//Test运行类
package test;
public class Test {
public static void main(String[] args) {
double r1=5;
System.out.println("r1初始值:"+r1);
printArea(r1); //调用方法,传参
System.out.println("r1调用后值:"+r1);
Circle c=new Circle();
System.out.println("调用前半径:"+c.radius); //半径值,由构造方法初始化
printArea(c,10); //调用方法,传参
System.out.println("调用后半径:"+c.radius);
Test t=new Test();
t.testname();
}
//如果要在当前类调用,不进行实例化调用,直接加static
public static void printArea(double r) {
double area;
r=2*r; //实参是基本类型,形参会在方法体内创建临时副本空间,不影响实参
area=Math.PI*r*r;
System.out.println(area);
}
public static void printArea(Circle d,double r) {
System.out.println("传参半径"+r);
d.radius=r; //把地址对应的内存值改变了,举例类似 在线协同表单
d.getArea();
}
public void testname() {
System.out.println("1111111");
}
}
输出结果
r1初始值:5.0
314.1592653589793
r1调用后值:5.0
构造初始化半径5.0
调用前半径:5.0
传参半径10.0
半径为10.0 面积:314.1592653589793
调用后半径:10.0
1111111