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关键字在构造函数间的调用,写在第一行
成员变量和局部变量的区别
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
- java的基础知识(2)
- (JAVA基础知识)一些基础知识的细分
- Java基础知识(2)
- java基础知识(2)
- Java基础知识(2)
- java基础知识(2)
- java基础知识(2)
- java的基础知识回顾---2
- java的基础知识(1)
- Java的基础知识(3)
- Java知识(java的基础知识)
- java基础知识总结(2)
- JAVA相关基础知识(2)
- Java基础知识(2):多线程
- java基础知识回顾(2)
- JAVA相关基础知识(2)
- java基础知识整理(2)
- java基础知识(二)——基础知识的学习
- 解决 The following packages have been kept back 问题
- register_shutdown_function 函数详解
- 腾讯优测优分享 | 双卡双待-工程师难言的痛
- linux - centos下boost库的安装
- leetcode之328. Odd Even Linked List(C++解法)
- java的基础知识(2)
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 《GPU高性能编程CUDA实战》学习笔记(八)
- Facebook新框架React Native,一套搞定App开发
- android 的一些小技巧
- poj2625 Coupons
- PHP 规范化代码风格(PSR、PEAR、Symfony)
- Android隐式启动匹配:action,category,data
- jstl 实现分页效果