2021-04-04

本文详细介绍了Java中的静态成员、构造块以及访问权限控制。讲解了静态成员如何通过类名直接访问,而非静态成员需通过对象实例访问。同时阐述了private关键字的作用,以及在main方法中访问private成员需通过getter和setter方法。此外,还提到了构造块的执行顺序和静态代码块的特性。
摘要由CSDN通过智能技术生成

在这里插入图片描述package Lianxi2;

public class People {
private int age;
private String name;
private String country;
People(){}
People(int age, String name,String country){
setAge(age);
setName(name);
setCountry(country);
}

public int getAge() {
    return age;
}
public String getName() {
    return name;
}
public String getCountry() {
    return country;
}
public void setAge(int age) {
    if(age>0&&age<250){
        this.age = age;
    }else{
        System.out.println("年龄不合理");
    }

}
public void setName(String name) {
    this.name = name;
}
public void setCountry(String country) {
    this.country = country;
}
public void show(){
    System.out.println("我是"+ getName()+"来自"+getCountry()+getAge()+"岁了");
}

}

package Lianxi2;

public class PeopleTest {
public static void main(String[] args) {
People p = new People(20, "guo ", "中国 ");
p.show();
People p2 = new People(50, "guo ", "中国 ");
p2.show();
}
}
在这里插入图片描述在这里插入图片描述
在这里插入图片描述static存在方法区。

不加static的时候,每个成员变量都属于对象层级,每次新new对象的时候就会创建一次。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
非静态可以访问静态,但是静态的方法不能访问非静态。 因为非静态的成员或者方法是在创建对象之后才产生的,如果没有创建对象那么就不存在,因此访问是没有效果的,java设置成不能访问。

静态成员中没有this关键字,因为是通过类名.的方式调用的。

在这里插入图片描述如果priviate修饰,不管后面是什么,哪怕是static,在外面访问的时候也要用共有的get set方法。
static修饰之后,就不可以用this,this一般是在对象层级。

在这里插入图片描述country被static之后,下面的get set 方法也得是static修饰的,此时,原来get set 中写的this就要修改成类名.来引用。
在这里插入图片描述
只要是private修饰了,在main中(类外)就不能访问,必须用set get。
在这里插入图片描述
其实就是没有用private之前,可以直接访问成员变量:p.age
但是private之后,就要写成:p.getage,因此private还要提供get set方法。

构造块的执行要优先于构造方法。
比如可以对成员变量进行统一初始化。
由于可以有多个构造方法可以有很多个版本,但是构造块只有一种,因此单单使用构造方法对成员变量进行初始化会太局限。
静态代码块:用static修饰的构造块。
由于static是类层级,因此静态代码块优先于构造块执行,随着类的加载执行,且由于类的加载只有一次,即使对象可以创建无限次,静态代码块也依然只能执行一次。但是 代码块会随着对象的创建而无限次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值