java的基础知识(2)

来源:互联网 发布:windows server2012吧 编辑:程序博客网 时间:2024/05/20 18:20
类和对象
成员变量和局部变量的区别
1、作用范围:成员变量作用在整个类内,局部变量作用在函数中,或者语句中
2、在内存中的位置:成员变量在堆内存中,因为对象的存在而存在
局部变量存在于栈内存中
3、成员变量有默认初始化值0,不赋值即可参与运算


封装:是隐藏对象的属性和实现细节,仅对外提供公共的访问方式
好处:将变化隔离、便于使用,提高安全性(在set和get方法中可以加入判断语句,看设置值是否合法


构造函数:特点:1、函数名与类名相同
2、不用定义返回值类型
3、不可以写return语句
作用:给对象初始化(某些对象一出现就具备一些特性)

当一个类中没有定义构造函数时,那么系统会自动加一个空参数的构造函数
当类中自定义的构造函数,默认的构造函数就会被覆盖


 构造代码块:
{}
作用:给对象进行初始化,对象一建立就运行,优先于构造函数执行
和构造函数的区别
构造代码块是给所有对象统一初始化,而构造函数是给对应的对象初始化
静态关键字static
被静态修饰后,不仅可以被对象调用,还可以被类名调用
存在于方法区(数据区、共享区),除了共享数据外,还有类中的方法



静态代码块:
static{}
特点:随着类的加载而执行,只执行一次,用于给类进行初始化,并优先于主函数
对象初始化过程:
Person p=new Person(“lisi”,2);
执行过程:
1、因为new用到了。class所以会先找到。class文件加载到内存中
2、☆执行该类中的static{}代码块,给。class文件进行初始化
3、在堆内存中开辟地址空间,分配内存地址
4、在堆内存中建立对象特有的属性,并进行默认初始化
5、对属性进行显式初始化
6、☆对对象进行构造代码块初始化{}
7、☆对对象进行对应的构造函数初始化
8、将内存地址赋给栈内存中p变量
this关键字:
1、this关键字可以在构造函数中区分局部变量和成员变量
this为什么可以解决这个问题?
this代表本类对象,代表它所在函数-所属对象的引用
2、比如:定义一个功能,比较年龄是否同
public boolean compare(Person p)
{return this.age==p.age}
即:当定义类中功能时,该函数内部要用到调用该函数对象时,这是用this来表示这个对象
3、this关键字在构造函数间的调用,写在第一行
0 0