面向对象:成员变量,成员方法,构造方法,static关键字

1.类和对象

类是对象的抽象,对象是类的实例
描述一个事物通过属性和行为来描述,对应一个类的成员变量和成员方法

2.一个标准类的组成

一个标准类至少由 构造方法,成员变量和成员方法组成
(1)为了防止外界随意修改类的成员变量,常常把成员变量设置为私有的:private。并且为其提供get和set方法,其中set方法可以控制成员变量设置的是否合理。
(2)构造方法:构造方法的名字必须与类名相同,并且不能有返回值类型(包括void)。构造方法是为了初始化,如果用户提供了构造方法,则默认构造方法(无参构造方法)不存在。
下面为一个标准的Person类:
例子:一个Person类

class Person{
    private int age;
    private String name;
	//无参构造方法
    public Person() {
    }
	//有参构造方法
    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }
	//成员变量的get方法
    public int getAge() {
        return age;
    }
    public String getName() {
        return name;
    }
	//成员变量的set方法
    public void setAge(int age) {
        if(age<0||age>120){
			System.out.println("您输入的年龄有误,请重新输入");
		}else{
			this.age=age;
		}
    }
    public void setName(String name) {
        this.name = name;
    }
}
//成员方法

上面的代码将成员变量age和name用private修饰符修饰,使其只能在本类中访问到,仅仅对外提供公共访问方式,这就是封装。

3.成员变量和局部变量的区别

(1):在类中的位置不同
成员变量:在类中方法外
局部变量:在方法定义中或者方法声明上
(2):在内存中的位置不同
成员变量:在堆内存
局部变量:在栈内存
(3):生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
(4):初始化值不同
成员变量:有默认初始化值
局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。

4.static关键字

(1)被static修饰的成员变量和成员方法属于该类本身,不属于类的对象。static修饰的变量和方法既可以通过类来调用,也可以通过对象调用,建议使用类调用
(2)static随着类的加载而加载,并且优先于对象存在,所以在static修饰的方法中不允许存在非静态方法和变量。
(3)被static修饰的变量是放在方法区的静态区(普通成员变量是在堆内存中)
附:一段代码的内存图
面向对象:成员变量,成员方法,构造方法,static关键字