构造方法
每创建一个类,系统会自动给这个类添加一个无参构造方法,并且是隐藏的
(1)构造方法是用来创建对象的
(2)构造方法的名称与类名相同
(3)构造方法没有返回值,void也不写
(4)当你在类中自定义了其它有参构造方法后,默认的无参构造方法会被覆盖,如果你还需要使用无参构造方法,就需要自己手动添加一个无参构造方法
public class Person {
//定义属性
String name;
int age;
char gender;
double height;
double weight;
String phoneNumber;
String address;
String hobby;
String country;
String job;
String email;
//定义一个有参构造方法
public Person(String name,int age,char gender,double height,double weight,String
phoneNumber,String address,String hobby,String country,String job,String email){
//this表示当前对象。一会谁调用此构造 方法创建对象,this就表示创建的这个对象
this.name = name;
this.age = age;
this.gender =gender;
this.height = height;
this.weight = weight;
this.phoneNumber=phoneNumber;
this.address = address;
this.hobby = hobby;
this.country = country;
this.job = job;
this.email = email;
}
public Person(String name,int age,char gender){
this.name = name;
this.age = age;
this.gender =gender;
}
public Person() {
}
public static void main(String[] args) {
// 创建Person类对象,并且给对象属性赋值
Person p1 = new Person();
p1.name = "张三";
p1.age = 30;
p1.gender = '男';
p1.height = 175.5;
p1.weight = 80;
p1.phoneNumber = "13212341234";
p1.address = "安徽合肥";
p1.hobby = "敲代码";
p1.country = "中国";
p1.job ="程序员";
p1.email = "1234@qq.com";
//可以在Person类中定义一个有参构造方法进行创建对象
Person p2 = new Person("lisi", 12, '女', 165, 50, "13245679876", "安徽安庆", "敲代码", "中国", "前端", "123@123.com");
System.out.println(p2.name);
System.out.println(p2.age);
//调用包含3个参数的构造方法创建Person对象
Person p3 = new Person("王五", 22, '男');
}
方法重载
在同一个类中,多个方法的方法名相同,参数列表不同,这个现象就是方法重载,与方法的返回值和访问权限修饰符无关
参数列表不同体现在参数的个数,参数的类型,参数的顺序
sum(int a,int b)
sum(int a,int b,int c)
sum(double a,double b)
sum(int a ,double b)
sum(double a,int b)
全局变量和局部变量
变量声明的位置决定变量作用域 变量作用域确定可在程序中按变量名访问该变量的区域
全局变量:
定义在类中方法外(循环结构外)的变量
全局变量的作用域是整个类中
全局变量可以不进行初始化,系统会给其一个默认值
同一个类中不能有同名的全局变量
同一个类中可以有同名的全局变量和局部变量,局部变量有更高的优先级
局部变量:
定义在方法内(循环结构内)的变量
局部变量的作用仅限于定义它的结构内
局部变量在使用之前要进行初始化,否则程序会报错
同一个方法中不能有同名的局部变量
int num ;
public void test(){
int number;
int num=20;
System.out.println(num);
//System.out.println(number);//The local variable number may not have been initialized 局部变量没有初始化
}
public void demo(){
int number;
// System.out.println(number);
}