(本文将继续更新)
构造方法 set/get方法 普通方法 方法的重载 及其应用
package studentsystem;
import com.sun.glass.ui.TouchInputSupport;
/*
* 关于类和成员
* @hansiqi
*/
public class Phone {
private String brand ;
private int price;
//构造方法:初始化,附初始值
public Phone() {
System.out.println("Phone的构造方法");
}
//构造方法重载
public Phone(String brand) {
this();//this 调用时必须放在重载调用方法第一行
//构造方法可以在类中调用方法使用this();
//this 只能在构造方法中调用构造方法
this.brand=brand;
System.out.println("Phone的单参构造方法"+brand);
}
public Phone(String brand,int price) {
this(brand);
this.price = price;
}
//假如(一个都没有)没有构造方法,new时虚拟机会自动构造一个无参的方法
//必须先写一个无参的构造方法,再写一个有参的构造方法,防止忘记传参(只要写了一个构造方法,虚拟机就不会再自动构造一个无参的方法)
//用new创建对象时调用构造方法时,系统根据传入的实参来匹配方法
//构造方法 和 析构函数
//set get 方法
public void setBrand(String brand) {
this.brand = brand;
}
public String getBrand() {
return this.brand;
}
//普通方法
public void connect(String num){
System.out.println("给单个人打电话");
}
//普通方法重载
public void connect(String[] nums) {
System.out.println("给多个人打电话");
for(String num :nums) {
this.connect(num);
//this调用本类中的普通方法
}
}
public Phone createPhone() {
return this;//表示当前已经构造的那个对象
}
}
包 接口 抽象
package studentsystem;
import java.util.Arrays;
import java.util.Random;
/*只导入这个包的这一层的类
* 下一层的包不导入
* @hsq
* 生成随机数
*/
public abstract class Test12 {
Random random;
public void show() {
//random = new Random();//不用导入也能使用(特殊的类),默认导入
//java.lang.String s;
//包的名称一般小写,名称有意义
//将不同的类分成不同的包,使项目之间的影响较小
//将项目分层,界面层....(l来存放界面视图层)
//service -> biz(业务逻辑层)
//dao(数据管理层)->date object
//protected 本类,派生类(子类),完全不相干的累(看是否在同一个保中)
//defalte 默认访问修饰符。属性或者方法,只要在同一个包中就可以访问
//-let 小程序类的 .net java.awt.Robot java.util.io
//抽象类(被继承的父类, )
//uml统一建模语言的使用
//abstract 抽象的类不能实例化
//抽象方法里必须在抽象类里的,抽象类里不一定有抽象方法
//没有方法体的方法,使子类实例化的时候必须实现该方法
//如果不定义这个抽象方法,那么继承抽象类的类也必须是抽象的类
//接口(无法直接用 implements/interface)
//接口只能继承接口
//弥补Java的单一继承机制,可以有多个接口
//interface 只能定义常量(不加final默认为常量,初始化赋值)
//1.8jdk之前,常量抽象方法
//狭义和广义的接口
//计算面积(功能)的接口
//接口:表示标准和规则,工业化的标准 ISO国际标准组织
//向上转型
//父类的引用指向自类的对象
//接口可以指向子类的对象
//一个类实现了一个接口,
//静态方法:省去实例化的过程,仅仅被调用一次
//defalt 只出现在接口当中
}
}
单例模式
//单例模式(23之一)
//当这个类的对象私有化,定义一个pubulic:
public Student getInstance(Student stu) {
if(stu == null) {
stu = new Student();
}
return stu;
}
}
各类业务方法及其应用场景
package studentsystem;
import java.util.Date;
import com.sun.org.apache.bcel.internal.generic.GETFIELD;
import com.sun.org.apache.bcel.internal.generic.RETURN;
import com.sun.prism.image.CompoundTexture;
public class Student {
//私有属性
private String id;//具有标志性的属性,放在首位
private String name;
private Date birthday;//存的毫秒数
//构造方法
public Student() {}//实例化类的对象的时候完成一次(只执行一次)
//与类同名,把属性进行初始化
public Student(String id) {
this.id=id;
}//单参的构造方法一般传入标识性的属性
public Student(String id,String name,Date birthday) {
this.id=id;
this.name=name;
this.birthday=birthday;
}
//set/get方法
public void setId(String id) {
this.id = id;
}
public String getId() {
return this.id;
}
//其他业务方法
public void study() {
}
public void study(Phone pc) {
}
//单例模式(23之一)
//当这个类的对象私有化,定义一个pubulic:
public Student getInstance(Student stu) {
if(stu == null) {
stu = new Student();
}
return stu;
}
}
类的继承