224 . 面向对象(上) 构造器基本原理
224 . 面向对象(上) 构造器基本原理
一.构造器(或构造方法,constructor)的作用.
作用1 : 创建对象
- 如果没有自定义的构造器的话,则系统默认提供一个空参构造器.
- 格式: 权限修饰符,类名(形参列表){ } .
作用2 : 可以带形参,来初始化对象的属性信息.
- 在一个类中,定义的多个构造器,彼此构成重载.
- 一旦我们自定义构造器之后,系统就不再提供默认空参构造器了.
- 一个类中至少要有一个构造器.
构造器 课后题: 1
1.在前面定义的Person类中添加构造器,利用构造器设置所有人的age属性初始值都为18。
2.修改上题中类和构造器,增加name属性,使得每次创建Person对象的同时初始化对象的age属性值和name属性值。I
Person 类
-name:String +setName(i:String) +getName():String
public class ren {
private int age ;
String name ;
ren(int a, String n ) { //在类名前不写class,就是构造器.
age = a ; //用构造器形参传入age和name的值
name = n; //构造器把属性age初始化为18
}
// 输入人年龄的方法
void setAge (int s) {
age = s ;
}
// 显示年龄的方法
int getAge () {
return age ;
}
}
//===================================
public class renTest {
public static void main(String[] args) {
ren r = new ren (8,"Tom"); //通过构造器形参,给对象的属性初始化
System.out.println(r.getAge()+r.name);
}
}
227. 构造器 练习2
创建2个类,Triangle 和 TriangleTest, 其中Triangle中声明私有的底边长base和高height , 声明公共方法访问私有变量,此处提供构造器,另一个类使用这些公共方法计算三角形面积.
public class Triangle {
private double base;
private double height;
Triangle(){ //再创建一个空参的构造器,想用哪个都行
}
Triangle(double b , double h) { //自定义构造器把base和height初始化你想要的数
base = b; //带形参的构造器可以new对象的时候传入实参来初始化属性.
height = h;
}
double triArea() { //计算面积的方法
return base*height/2 ;
}
public class TriangleTest {
public static void main(String[] args) {
Triangle t = new Triangle(9,2);
//创建对象时传入实参初始化两个属性
System.out.println(t.triArea());
}
}
构造器 练习题 3
(1)定义Student类,有4个属性:
String name; int age; String school; String major;
(2)定义Student类的3个构造器:
>第一个构造器Student(String n,int a)设置类的name和age属性;
>第二个构造器Student(Stringn,int a,String s)设置类的name,age和school属性;
>第三个构造器Student(String n,int a,String s,String m)设置类的name,age,school和major属性;
(3)在main方法中分别调用不同的构造器创建的对象,并输出其属性值。
-
构造器根据形参的数量和类型可以重制,一般可以在空参构造器后创建几个带形参的构造器重载.
228 总结属性赋值的过程
给类中的属性赋值的几种方法:
-
默认初始化
-
显示初始化
-
构造器初始化
以上都属于初始化,只执行一次。
-
通过 对象.属性 和 对象.方法 方式赋值,--可以反复执行。
229. JAVA BEAN
-
它时一种可复用组件,是符合一下标准的java类。
-
类是公共的。
-
有一个无参公共构造器。(默认构造器权限同类)
-
有属性且有对应的get,set方法。
用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用 户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。
JavaBean 练习题 :
写一个JavaBean
//公共类
public class Customer{
//私有的属性
private int age ;
private String name ;
//空参构造器
public Customer(){
}
//公共的get,set方法
public int getAge(){
return age;
}
public void setAge(int a){
age = a;
}
public String getName(){
return name;
}
public void setName(String n){
name = n;
}
}

浙公网安备 33010602011771号