类的成员-构造器
# 类的成员
Java的基本单位是类class
,Java成员即类中的成员,包括以下五个部分:
- 属性
- 方法
- 构造器
- 代码块/初始化块
- 内部类
# 构造器Constructors
类的成员之三:构造器(或==构造方法==),任何一个类都有构造器。
构造器的特征
- 它具有与类相同的名称
- 它不声明返回值类型。(与声明为void不同)
- 不能被static、final、synchronized、abstract、native修饰,不能有return语句返回值
构造器的作用
构造器的作用就是:==创建对象;给对象进行初始化==(实例化)
Order o = new Order();
Person p = new Person(“Peter”,15);//这样对象一旦初始化就有name和age的值了。
1
2
2
如同我们规定每个“人”一出生就必须先洗澡,我们就可以在“人”的构造器中加入完成“洗澡”的程序代码,于是每个“人”一出生就会自动完成“洗澡”,程序就不必再在每个人刚出生时一个一个地告诉他们要“洗澡”了。
语法格式
修饰符类名(参数列表) {
初始化语句;
}
1
2
3
2
3
举例:
package constructors;
public class Animal {
private int leg;
//构造器
public Animal() {
leg = 4;
}
public void setLeg(int i) {
leg = i;
}
public int getLeg() {
return leg;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
创建Animal类的实例:Animal a=new Animal();
调用构造器,将legs初始化为4。
根据参数不同,构造器可以分为如下两类:
- 隐式无参构造器(系统默认提供)
- 显式定义一个或多个构造器(无参、有参)
注意
- Java语言中,每个类都至少有一个构造器
- 默认构造器的修饰符与所属类的修饰符一致
- ==一旦显式定义了构造器,则系统不再提供默认构造器==。(默认构造器是无参的构造器)
- 一个类可以创建多个==重载==的构造器
- 父类的构造器不可被子类继承
构造器重载
构造器一般用来创建对象的同时初始化对象。如
class Person{
String name;
int age;
public Person(String n,int a){
name = n;
age = a;
}
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
构造器重载使得对象的创建更加灵活,方便创建各种不同的对象,但是==参数列表必须不同==
public class Person {
public Person(String name, intage, Date d) {
this(name, age);
}
public Person(String name, intage) {...}
public Person(String name, Date d) {...}
public Person() {...}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 小结:属性赋值过程
截止到目前,我们讲到了很多位置都可以对类的属性赋值。现总结这几个位置,并指明赋值的先后顺序。
- 赋值的位置:
- 1、默认初始化:隐式无参构造器(系统默认提供)
- 2、显式初始化:显式定义一个或多个构造器(无参、有参)
- 3、构造器中赋值
- 4、通过“对象.属性“或“对象.方法”的方式赋值
- 赋值的先后顺序:1、2、3、4
# JavaBean
什么是JavaBean?
- JavaBean是一种Java语言写成的可重用组件。
- 所谓javaBean,是指符合如下标准的Java类:
- 类是公共的
- 有一个无参的公共的构造器
- 有属性,且有对应的get、set方法
JavaBean的作用
用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。
示例
package constructors;
public class JavaBean {
private String name;
private int age;
public JavaBean() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# UML类图
- + 表示public 类型,-表示private 类型,#表示protected类型
- 方法的写法: 方法的类型(+、-) 方法名(参数名:参数类型):返回值类型
帮我改善此页面 (opens new window)
上次更新: 2020/12/18, 12:50:58