2.23 学习记录 接口与抽象类的选择,public class和class类声明,单例设计模式

昨天写了一个程序,看题目的要求,我觉得应该用接口,但是给的参考答案用的是抽象类。个人感觉用接口或者抽象类都能完成题目的要求。于是产生了一个疑问,在接口和抽象类都能用的情况下,应该用哪一个?
1.行为模型应该总是通过接口而不是抽象类定义,抽象类表示它是什么,接口表示它能做什么。
2、抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的,所以如果创建的基类包括其他的方法和成员变量时,只能用抽象类;
链接:这篇文章写的简单易懂
public class :文件名称必须与类名称保持一致,在一个*.java 文件里面只能有一个public class 声明,如果一个类需要被不同的包访问,那么一定要定义为public class;
class:文件名称可以与类名称不一致,并且一个*.java 文件里面可以有多个class定义,编译后会形成多个*.class文件,如果一个类使用的是class定义,那么表示这个类只能被本包所访问。

在实际开发中,绝大多数情况下都只会在一个*.java 文件里面定义一个类,并且类的声明绝大多数使用的都是public class完成的。

访问控制权限
(开发过程中,真正用到的只有public和private,属性声明private,方法声明public)
private 只能在一个类中访问
default 只能在一个包中访问
protected在不同包的子类中访问
public所有情况都可以

命名规范:
类名称:每一个单词的开头字母大写,例如:TestDemo
变量名称:第一个单词的首字母小写,之后每个单词的首字母大写,例如studentName;
方法名称:第一个单词的首字母小写,之后每个单词的首字母大写,例如printInfo();
常量名称:每个字母大写,例如:FLAG;

单例设计模式:
目的:让一个类在整个系统中只允许存在有一个实例化对象。
具体实现方法:
(1)将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象。
(2)在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型。
(3)定义一个静态方法返回这个唯一对象。
”饿汉模式“:

class Singleton{//定义一个类
	private final static Singleton instance = new Singleton();
	private Singleton(){//构造方法私有化
	
	}
	public void print(){
		System.out.println("Hello World")}
	public static Singleton getInstance(){//取得本类对象
		return instance;
		}
	}
	public class TestDemo{
		public static void main(String args[]){
			Singleton inst = null;//声明对象
			inst = Singleton.getInstance();//利用”类.static方法()“取得实例化对象
			inst.print();//调用方法
			}
		}

多例设计模式:
单例设计模式只留下一个类的实例化对象,而多例设计模式,会定义出多个对象。例如定一个表示星期的操作类,就只有7个实例化对象(星期一至星期天),虽然有多个实例化对象,但是对实例化对象的个数是有限制的。核心与单例设计模式一样,构造方法私有化。

异常:
异常的组合格式:
1.try…catch
2.try…catch…finally
3.try…finally
在这里插入图片描述
finally往往是在开发的时候进行资源的释放。
Error:指的是JVM错误,这时的程序并没有执行,无法处理;
Exception:指的是程序运行中产生的异常,用户可以使用异常处理格式处理。

发布了48 篇原创文章 · 获赞 9 · 访问量 7905

猜你喜欢

转载自blog.csdn.net/trh_csdn/article/details/104454631