面向对象的三大特征--封装

封装的定义

封装,英文单词Encapsulation。

从广义的角度来说,将一块经常要使用的代码片段,定义到方法中,是封装。将多个方法和多个状态数据定义到类体中,也是一种封装。

从狭义的角度来说,java的封装,就是把类的属性私有化(private修饰),再通过公有方法(public)进行访问和修改;

public class Aperson{

private String name;
private int age;
private char gender;

    //无参构造器
    public APerson(){}

    //全参构造器
    public APerson(String name, int age, char gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;

}

public String getName(){return name;}
public void setName(String name){

this.name = name;
}

public void setAge(int age){
if(age>0 && age<=120){
this.age = age;
}else{
System.out.println("--您赋值的年龄不合法--"+age);
}


public int getAge(){return age;}

public void setGender(char gender){
if(gender == '男'||gerder == '女'){
this.gender = gender;
}else{
throw new RuntimeException("您赋值的性别不合法,需要汉字'男'或'女'--")
}
}

}









测试封装

public class APersonTest{
public static void main(String[] args) {

Aperson p1 = new Aperson();\
p1.setName ("小明");
p1.setAge(18);
p1.setGender('女');

 System.out.println(p1.getName());
        System.out.println(p1.getAge());
        System.out.println(p1.getGender());

        p1.setGender('m');
        System.out.println(p1.getGender());
}
}

单例测试-----饿汉模式

单例模式的饿汉模式

1.提供一个该类的私有的、静态的属性,并在静态代码块里赋值

2.提供一个私有的构造器,避免外界直接调用构造器

3.提供一个共有的、静态的方法,来获取当前类的对象

public class BSingleton{
        private static BSingleton instance;
        static{t
            instance = new BSingleton;
}
    private BSingleton(){}
public static BSingleton getInstanceO(){
        return instance;
}
}

饿汉模式的测试

public class BSingletonTest {
    public static void main(String[] args){

    BSingletonTest bs = BSingleton.getInstance();
    BSingletonTest bs2 = BSingleton.getInstance();

System.out.println("bs == bs2");
}

}

单例模式-----懒汉模式

单例模式的懒汉模式

1.提供一个该类的私有的、静态的属性

2.提供一个私有的构造器,避免外界直接调用构造器

3.提供一个共有的、静态的方法,创建当前类的对象。如果对象不存在,说明对象还未创建

4.有安全隐患问题,例如两次调用的时候都恰好到执行处,判断=null,都执行到创建实例的那一行,会在内存创造两个对象

public class CSingleton{
    private static CSingleton instance;
    private CSingleton(){}
    public static CSingleton getInstance(){
        if(instance == null){
        instance = new CSingleton;
}
        return instance;
}
}

 懒汉模式的测试

public class CSingletonTest(){
    public static void main(String[] args){
        CSingletonTest c1 = CSingleton.getInstance;
      CSingletonTest c2 = CSingleton.getInstance;
System.out.println("c1 == c2");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值