public class OverLoad {
public static void main(String[] args) {
A2 a2 = new A2();
a2.a1(1 ,2);
System.out.println(a2.a1(5.3,6.2));
}
}
class A2 {
public void a1(int a, int b){
System.out.println("dads");
}
public int a1(double a, double b ) {
return (int)( a + b);
}
}
public class Varparameters {
public static void main(String[] args) {
Var var = new Var();
System.out.println(var.sum(1,5,6,7,8,8)); //传入的实参也可以是数组,例如arr[]
}
}
class Var {
public int sum(int ... num) { //此时的num当做一个数组来使用
int res = 0;
for (int i = 0; i < num.length; i++) {
res += num[i];
}
return res;
}
}
作用域
局部变量
属性和局部变量可以重名;遵循就近一致原则
只能在本类中对应方法中使用
全局变量
可以被本类使用,或其他类使用
构造器
构造方法又叫做构造器,它的主要作用是完成新建对象的初始化
例子:
public class Constructor {
public static void main(String[] args) {
Person p1 = new Person("klkl", 12);
System.out.println(p1.name + " " + p1.age);
}
}
class Person {
String name;
int age;
public Person(String name1, int age1) {
System.out.println("构造器被调用");
name = name1;
age = age1;
}
}
输出结果为构造器被调用,klkl,12。
如果没有定义构造器,则系统自动有默认无参构造器
对象创建流程
加载类信息,只创建一次
在堆空间里创建对象
对对象进行初始化 a. 默认初始化 b. 显式初始化 c. 构造器初始化化
将对象所在堆空间的地址返回给对象名(即引用)
this的含义
在使用构造器时,如果想达到参数名和属性名一模一样的话,可以使用this;
分析以下代码
class Person2 {
String name;
int age;
public Person2(String name, int age){
name = name;
age = age;
}
}
package com.example.use;
import com.example.jiandao.Jiandao;
public class Test {
public static void main(String[] args) {
Jiandao jiandao = new Jiandao();
System.out.println(jiandao);
com.example.classstudy.Jiandao jiandao1 = new com.example.classstudy.Jiandao();
System.out.println(jiandao1);
}
}