A java单例模式、枚举、newInstance、异常Exception

1.枚举
1.1

 public enum Myenum{//枚举}
    public class User{//普通类}

1.2 枚举无参构造

public enum Myenum{ }

1.3 枚举构造方法
用private修饰。如果省略修饰符,默认使用private
枚举能记录多个同类型变量信息,静态变量只能一个一个存储
示例1:

public enum Menum{
//枚举对象
tom("hac",12);
jack("abc",13);
//普通变量
String name;
int age;
//枚举构造方法
private MeEnum(String name,int age){
this name = name;
this age = age;
	}
}

示例2:

 public enum Menum{
tom("hac",12);
jack("abc",13);
String password;
String account;
private Menum(String a, String b){
account = a;
password = b;
	}
}

2.单例模式()
1)单例模式指私有化(private)构造方法,提供公有获取静态对象模式,不让外部调用创建对象。
2)怎样让外部获取本类的实例化对象 — 本类提供一个方法(static),供外部调用实例化对象。
3)单例模式在产生时,已经写好了一个私有对象,被封装在一个方法里,通过类名调用该方法,即可获取到这个对象。所有单例模式不管有多少个引用,获取到的对象都是一样的,所以地址也一样。
4)一个类的单例模式:一个类只能有一个对象,而且不能创建新的对象。
5)枚举类本身就是单例模式。
6)创建单例模式:枚举、懒汉式、饿汉式。

class Chinese{
private static Chinese objref =new Chinese();//私有对象
private Chinese(){}//私有构造方法
public static Chinese getInstance() { return objref; }//提供getInstance()方法,供外部调用实例化
}
public class TestChinese {
public static void main(String [] args) {
Chinese obj1 = Chinese.getInstance();
Chinese obj2 = Chinese.getInstance();
System.out.println(obj1 == obj2);//true
}
}
public class User{
String name;
private static User u;//懒汉式
private static final User u2 = new User("abc");//饿汉式
public User{
}
public User(String name){
this name = name;
}
public static User getInstance(){//本类提供一个方法,供外部调用实例化
if(u==null){
u=new User("abc");
}
return u;
}
}

3.创建实例化对象两种方式:
1)new创建 User user = new User();
2)newInstance()实例化对象user

String url = "包.类"
Class cl = Class.forName(url);
User user = (User) cl.newInstance();
user.setName("xiaoming");

4.异常:Exception
1.检查时异常,不能避免
2.运行时异常,可以避免: try-catch-finally捕获异常 或 throws抛出异常。
1)特点:代码中一旦出现异常,异常位置后面代码将不再运行。
try捕获异常后,不再执行try,直接进入catch;没有异常,不执行catch。
不管是否出现异常,finally中的代码块都要执行,finally在try或者catch中的return前执行。
如果finally中有return或者throw,则try或者catch的return会失效。
运行时异常由java虚拟机自行处理异常。
捕获到的异常可以由当前方法处理,也可以由其他方法处理(可以抛给上一层方法处理)。
添加链接描述
2)try:可能发生异常的语句
catch:捕获,并处理异常(printStackTrace()用来跟踪异常事件发生时执行堆栈的内容)
throw:方法内部抛异常
throws:声明方法异常
finaly:代码中无论是否有异常都会执行,清除资源
3.throw 抛出异常
1.throw new Exception();//手动抛出,将被catch捕获 2. throw Exception;//在main后面加
示例:

 try{
 //try代码块中包含可能出现异常的代码
  throw new Exception();//人为的抛出异常
}catch(Exception e){//catch捕获异常并处理异常
  //e.printStackTrace();抛出异常信息
}finally{//不管是否出现异常,finally中的代码块都将在try或catch后面执行,又在return前面执行
System.out.println(1);
}
//throws异常抛给上一级处理,最终给jvm处理
public static int exc2() throws Exception {
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值