成员变量和局部变量区别:
1、 源代码中定义的位置不同。成员变量定义在类中,局部变量定义在方法中(只要是类的下一级大括号都是局部的)
2、 内存中的存储位置不同。成员变量存储在堆内存的对象中,局部变量存储在栈内存的方法中。
3、 生命周期不同。成员变量随着对象的出现而出现。局部变量随着所属区间的运行而出现,随着所属区间的结束而释放
-----------------------------------------------------------------------------------------------------------------------------------------------
封装:隐藏实现细节,对外提供公共的访问方式。其体现之一就是将属性都私有化,对外提供set、get方法来访问。
封装的好处:
1、 提高了安全性。不允许直接访问细节,并通过公共的方式来访问,可以实现数据可控
2、 提高了易用性。
3、 提高了复用性
4、 隔离了变化
private:私有权限修饰符,降低访问权限
--------------------------------------------------------------------------------------------------------------------------------------------
构造函数
构造函数也是功能,只不过构造函数是用于初始化对象的。
格式:
1、 函数名和类名相同
2、 没有返回值类型
3、 没有具体的返回值
Person p=new Person(“aa”);
一般函数和构造函数的区别:
构造函数在对象创建的时候就执行了,而且只执行一次
一般函数是在对象创建后,需要时才被对象调用,但是可以调用多次
内存体现:
将构造函数私有化后无法创建对象。
构造函数之间的访问是通过关键字this来实现的,this代表的是对象,但并不是对象,而是对象的引用。
Person{
name = n;
}
person{
this(n); //将n的值赋给当前调用该构造函数的对象
age=a;
}