11.13第13天

/*
 * 一static修饰属性:静态变量
 * 		1.我们创建了类的多个对象,多个对象共享同一个静态变量
 * 		2.静态变量随着类的加载而加载,加载要早于对象的创建
 * 二static修饰方法:静态方法
 * 		随着类的加载而加载,可以通过”类.静态方法“的方式调用
 * 		静态方法中只能调用静态方法和属性
 * 三static注意:
 * 	不能调用this和super
 * 四
 * 		开发中如何确定一个属性是否声明为static
 * 		》属性是共享的不会随着对象不同而改变
 * 
 * 		开发中如何确定一个方法是否声明为static
 * 		》操作静态属性的方法
 * 		》工具类中的方法,
 * 五
 * 		静态代码块
 * 		>内部可以有输出语句
 * 		>随着类的加载而执行,而且只执行一次
 * 		>作用:初始化类的信息
 * 		>静态代码块的执行优先于非静态代码块
 * 		动态代码块
 * 		>内部可以有输出语句
 * 		>随着对象的创建而执行
 * 		>每创建一个对象就执行一次非静态代码快
 * 		>作用:可以在创建对象时,对对象的属性初始化
 * 六
 * 		final修饰的类不能被继承,修饰的方法不能被重写。
 * 		final修饰变量:变常量
 * 			修饰局部变量:尤其是使用final修饰形参时,表明此形参是一个常量,
 * 				当我们调用此方法时,给常量形参赋一个实参,一旦赋值以后,
 * 				只能在方法体内使用此形参,但不能进行重新赋值。
 * 
 * 		static final 用来修饰属性:全局常量
 */
public class StaticTest {
	public static void main(String args[]) {
		Chinese c1=new Chinese();
		c1.name="小辉";
		Chinese c2=new Chinese();
		c2.name="小明";
		
		c1.nation="CHN";
		System.out.println(c2.nation);
		Chinese.show();
	}
}
class Chinese{
	String name;
	static String coloyr="黄色";
	static String nation;
	public static void show() {
		System.out.println("我是中国人");
	}
	//非static的代码块
	{
		System.out.println("hello");
	}
	//static的代码块
	static {
		System.out.println("hello,static");
		coloyr="我有点黑";
	}
}
/*单例设计模式:
 * 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例
 *区分饿汉式和懒汉式
 *	饿汉式:
 *		好处:对象加载时间长。
 *		坏处:饿汉式是线程安全的
 *	懒汉式:
 *		好处:延迟对象的创建
 *		坏处:线程不安全
 */
public class SingletonTest {
	public static void main(String[] args) {
		Bank bank1=Bank.getInstance();
		Bank bank2=Bank.getInstance();
		System.out.println(bank1==bank2);
		
		Order order1=Order.getInstance();
		Order order2=Order.getInstance();
		System.out.println(order1==order2);
	}
}
//饿汉式实现
class Bank{
	private Bank() {//1.构造私有化的构造器
	}
	//2.内部创建类的对象
	private static Bank instance=new Bank();
	
	//3.提供公共方法,返回类的对象
	public static Bank getInstance() {
		return instance;
	}
}
//懒汉式实现
class Order{
	//1.构造私有化的构造器
	private Order() {
	}
	//2.声明当前类对象,没有初始化
	private static Order instance=null;
	//3.
	public static Order getInstance() {
		if(instance==null) {
			instance=new Order();
		}
		return instance;
	}
}
/*
 * abstract修饰类:抽象类
 * 	》不能实例化
 * 	》抽象类中一定有构造器,便于子类实例化的时候调用
 * abstract修饰方法:抽象方法
 * 	>抽象方法只有方法的声明,没有实体
 * 
 * 注意:abstract不能用来修饰:属性,构造器,私有方法,静态方法,final的方法和类
 */
public class AbstractTest {
	public static void main(String[] args) {
	
	}
}
abstract class Person{
	String name;
	public Person(){
		
	}
	public Person(String name) {
		
	}
	//抽象方法
	public abstract void eat();
	
	public void play() {
		System.out.println("人要娱乐");
	}
}

class Student extends Person{
	public Student(String name) {
		super(name);
	}
	public void eat() {
		System.out.println("学生要吃蛋白质");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值