活动地址:CSDN21天学习挑战赛
目录
构造器
1,作用
1、创建对象
2、初始化对象的属性
2,说明
1、如果没有显式的定义类的构造器的话,则系统默认提供一个空参的构造器
2、定义构造器的格式:权限修饰符 类名(形参列表){ }
3、一个类中定义的多个构造器,彼此构成重载
4、一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器
3,举例
public class PersonTest { public static void main(String[] args) { Person p2 = new Person("TOM",21); System.out.println("name:"+ p2.getName() + ",年龄为:"+ p2.getAge()); } } public class Person { private int age; private String name; //空参的构造器 public Person() { } //带参构造器 public Person(String n,int a) { name = n; age = a; } //get、set方法 public void setAge(int a) { if (a < 0 ||a > 130) { System.out.println("输入数据非法"); return; } age = a; } public int getAge() { return age; } public void setName(String n) { name = n; } public String getName() { return name; } }
**
JavaBean
JavaBean是一种Java语言写成的可重用组件。
是指符合如下标准的Java类:
1、类是公共的
2、有一个无参的公共的构造器
3、有属性,且有对应的get、set方法
public class Person { private int id; private String name; public Person() { } public void setId(int i) { id = i; } public int getId() { return id; } public void setName(String n) { name = n; } public String getName() { return name; } }
**
关键字:this
1,this 的使用
this可以用来修饰和调用:属性、方法、构造器
2,this修饰属性和方法
a、this理解为当前对象 或 正在创建的对象
b、在类的方法中,我们可以使用"this.属性"和"this.方法"的方式调用当前对象属性或方法
通常情况下都会省略"this."当形参和类的属性同名时,必须显式的使用"this.变量"的方式,表明此变量是属性,而非形参
c、在类的构造器中,我们可以使用"this.属性"和"this.方法"的方式调用当前正在创建的对象属性或方法
通常情况下都会省略"this."当构造器的形参和类的属性同名时,必须显式的使用"this.变量"的方式,表明此变量是属性,而非形参
3,举例
class Person{ private String name; private int age; public Person() { } //构造器中形参与属性同名,必须显式使用"this.变量"的方式 public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } //方法 public void eat() { System.out.println("吃饭"); } public void sleep() { System.out.println("睡觉"); } }
4,this调用构造器
a、我们在类的构造器中,可以显式的使用"this(形参列表)"方式,调用本类中指定的其他构造器
b、构造器中不能通过"this(形参列表)"调用自己,只能调用别的构造器
c、如果一个类中有n个构造器,则最多有 n - 1 个构造器中使用了"this(形参列表)"
d、规定:"this(形参列表)"必须声明在当前构造器的首行e、构造器内部,最多只能声明一个"this(形参列表)"用来调用其他构造器
4,举例
class Person{ private String name; private int age; //构造器 public Person1() { } public Person1(String name) { this();//调用无参的构造器 this.name = name; } public Person1(int age) { // this(name, age);//n个构造器最多有n-1个构造器使用"this(形参)" this.age = age; } public Person1(String name,int age) { this(name);//调用name参数的构造器 this.name = name; this.age = age; } }
提醒:在发布作品前请把不用的内容删掉(活动地址请保留)