/*
-
- 类的结构之构造器的使用
-
- 构造器的作用是为了创建对象,给对象进行初始化,使用参数给属性赋值
-
- 构造器语法格式:
修饰符 类名(参数列表){
初始化语句
}
- 构造器语法格式:
-
- 构造器分类:
- 1,隐式无参构造器,由系统默认提供。
- 2,显示定义一个或多个构造器(可以无参,可以有参)
- *构造器特征:
- 1.1具有与类相同的名称
- 1.2不声明返回值类型(与声明为void不同)
- 1.3不能被static,final,synchronized,abstract,native修饰,
- 不能有return返回值
- 1.4每个类至少有一个构造器
- 1.5默认构造器的修饰符与所属类的修饰符一致,自定义构造器权限可以不同
- 1.6一旦显示的定义了一个构造器,则系统不再提供默认构造器;
- 1.7一个类可以创建多个重载的构造器
- 1.8父类中的构造器无法被子类继承
- 构造器的重载
- 构造器重载可以使创建对象方式更加灵活,方便创建各种不同对象
- 构造器构成重载则参数列表必须不同
- 属性赋值的过程;
- 赋值位置
- 1,默认初始化 (int base)
- 2,显示初始化 (int base = 2)
- 3,构造器中的初始化 (Triangle(3,4))
- 4,通过对象.属性或对象.方法的方式赋值(t.setBase = 5)
- 赋值的先后顺序 1-2-3-4
*/
package com.atguigu.contact;
public class Object_Constructor {
public static void main(String[] args) {
Object_Constructor o = new Object_Constructor();
//Object_Constructor()就是系统默认的Object_Constructor类的构造器。
System.out.println(o.s);
Object_Constructor o1 = new Object_Constructor("name");
System.out.println(o1.s);
Object_Constructor o2 = new Object_Constructor(1,"name",3.14);
System.out.println(o2.i + o2.s + o2.d);
//测试Triangle类,计算三角形面积
Triangle t = new Triangle(4.5,3.7);
System.out.println(t.getArea());
}
int i;
String s;
double d;
protected Object_Constructor(){
i = 0;
s = "";
d = 0.0;
}
private Object_Constructor(int i){
this.i = i;
s = "";
d = 0.0;
}
Object_Constructor(String s){
i = 0;
this.s = s;
d = 0.0;
}
Object_Constructor(double d){
i = 0;
s = "";
this.d = d;
}
Object_Constructor(int i,String s,double d){
this.i = i;
this.s = s;
this.d = d;
}
}
class Triangle{
private double base;
private double hight;
public Triangle() { //开发中习惯定义一个空参构造器
}
Triangle(double m,double n){
base = m;
hight = n;
}
public void setBase(double m) {
base = m;
}
public double getBase() {
return base;
}
public void setHight(double m) {
hight = m;
}
public double getHight() {
return hight;
}
public double getArea() {
return (base * hight) / 2;
}
}
/*
- JavaBean
- JavaBean是用java语言写的可重用组件
- javaBean是符合以下标准的java类
- 1,类是公共的
- 2,有一个无参的公共的构造器
- 3,有属性,且有对应的get,set方法
- 用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以
*用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP
*页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用
*户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关
*心任何改变。
*UML类图
*类似设计草图,规划出要创造的类的结构目录
- bank 包名
-
- Account 类名
-
- -balance : double 属性列表, “:”前是属性名名,后面是属性类型
-
- +Account(int : t balance : double) 加下划线为构造器,不加为方法
- +getBalance() : double
- +deposit(amt : double)
- 方法的表示方法: 方法权限(+ - #) 方法名(参数名 : 参数类型) : 返回值类型
- 其中+表示public,- 表示private,#表示protected
*/
package com.atguigu.contact;
public class Object_JavaBean {
String name;
int age;
public Object_JavaBean() {
}
public void setName(String s) {
name = s;
}
public String getName() {
return name;
}
public void setAge(int a) {
age = a;
}
public int getAge() {
return age;
}
}