java 封装和static的解析

对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作。

什么是封装?

封装就是将属性私有化,提供公有的方法访问私有属性。

做法就是:修改属性的可见性来限制对属性的访问,并为每个属性创建一对取值(getter)方法和赋值(setter)方法,用于对这些属性的访问。

如:

private String name;
public String getName(){
            return  name;

           }
        public void setName(String name){
          this.name=name;
           }

static的关键字的用法:

static关键字:static变量是该类的所有对象所共有的,静态变量既能被对象调用,也能直接拿类来调用。所有实例的引用都指向同一个地方,任何一个实例对其的修改都会导致其他实例的变化。

public class User {
    private static int userNumber  = 0 ;
 
    public User(){
        userNumber ++;
    }
 
    public static void main(String[] args) {
        User user1 = new User();
        User user2 = new User();
 
        System.out.println("user1 userNumber:" + User.userNumber);
        System.out.println("user2 userNumber:" + User.userNumber);
    }
}    
------------
Output:
user1 userNumber:2
user2 userNumber:2
static静态的、类加载的时候 先于对象存在

static修饰代码块,在类加载的时候执行一次,加载配置文件、获取系统配置参数(初始化)

public class extend {

    /**
     * 计数器,用于记录学生的数量
     */
    private  static int count = 170000;

    private int age;

    private String number;

    /**
     * 静态代码块:在类加载的时候执行
     */
    static {
        System.out.println("在类加载之前执行!");
    }

    /**
     * 无参构造方法
     */
    public extend() {
        count++;
        number = "j" + count;
    }

    /**
     * 有参构造方法
     * @param age
     */
    public extend(int age) {
        this();
        this.age = age;
    }

    @Override
    public String toString() {
        return "extend{" +
                "age=" + age +
                ", number='" + number + '\'' +
                '}';
    }


    public static void main(String[] args) {
        extend extend = new extend(22);
        extend extend02 = new extend(22);
        System.out.println(extend);
        System.out.println(extend02);
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age < 7 || age > 60){
            System.out.println("年龄非法");
        }
        this.age = age;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值