3/0 类和对象,继承,接口

本文深入探讨了Java中的类和对象概念,包括构造方法、set/get方法、方法重载,以及包、接口、抽象类和单例模式的应用。实例展示了如何通过继承实现代码复用,以及各类业务方法在实际场景中的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


(本文将继续更新)

构造方法 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;
	}
}

类的继承


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值