面向对象:成员变量,成员方法,构造方法,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修饰的变量是放在方法区的静态区(普通成员变量是在堆内存中)
附:一段代码的内存图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值