黑马程序员——java基础知识
来源:互联网 发布:淘宝客户资料购买平台 编辑:程序博客网 时间:2024/06/06 16:31
1.1. 类和对象的关系
类:就是现实生活正现实事物的描述
对象:就是这类事物,试试在在存在的个体
对象的引用存放在栈内存中,具体的对象存放在j堆内存中,用new建立对象实体。
1.2. 成员变量和局部变量
成员变量:作用于整个类中,在堆内存中,因为对象存在内存中
局部变量:作用于函数或者语句中,在栈内存中
1.3. 匿名对象的应用
例:new Person().name = “zhangsan”;(1)
new Person().age = 20;(2)
讲解:语句1执行过后,变成垃圾,在执行语句2的时候,内存重新开辟了内存,所以是两个对象,
应用:当一个对象的方法只调用一次,可以使用匿名对象,当对象调用多次,就必须给对象起一个名字。
可以将匿名对象当做参数进行传递。
1.4. 构造函数和构造代码块
构造函数:
1. 对象建立就会调用与之对用的构造函数
2. 用于对象的初始化
3. 当类中没有定义构造函数,系统会默认给类加载无参的构造函数
4. 当类中定义了构造函数后,默认的构造函数就没有了
构造函数与一般函数的区别:
构造函数:在对象一建立就运行,给对象初始化,只运行一次
普通函数:给对象增加其他的功能,可以被反复调用
什么时候定义构造函数:
当分析事物时,该事物具备一些特性或者行为,那么这些内容定义在构造函数中。
构造代码块和构造函数的区别:
构造函数:给特定的对象进行初始化
构造代码块:给所有类初始化,优先于构造函数执行统一的初始化
例:
p
</pre><pre name="code" class="html"><pre name="code" class="java">public classPerson { privateString name; private int age; //构造代码块,所有孩子出生就会哭 { cry(); } publicPerson(){}//孩子出生后,为其取名字 publicPerson(String name,intage){ this.name =name; this.age =age; } public voidcry(){ System.out.println("cry"); }}
</pre><p align="left"></p><h4>1.5. This关键字</h4><p> This:</p><p><span style="white-space:pre"></span>代表本类的对象</p><p><span style="white-space:pre"></span>代表他所属函数所属对象的引用</p><p> <span style="white-space:pre"></span> 哪个对象调用this所在的函数,那么this就代表哪个对象</p><p> 应用:</p><p> 当定义类功能时,该函数内部功能要调用该函数的对象时,这是用this来表示这个对象。</p><p> 例1:构造函数中对象的初始化</p><p align="left"><strong><span style="color:#7F0055;"></span></strong></p><pre name="code" class="java">public classPerson { privateString name; private int age; publicPerson(String name,intage){ this.name =name; this.age =age; } }
例2:构造函数相互调用,this关键字只能出现在第一行
public classPerson { privateString name; private int age;publicPerson(){} publicPerson(String name,intage){ this();//此时调用的是无参数的构造函数 this.name =name; this.age =age; } }
1.6. Static关键字
Static是一个修饰符,用于修饰成员变量和成员方法。当成员被修饰成静态后,就多了一个调用方法,除了一个被对象调用以外,还可以被类名直接调用。
静态的特点:
随着类的加载个加载,随着类的消失而消失,生命周期最长
被所有对象共享,静态先存在,对象后存在
优先于对象存在
可以直接被类名调用
实例变量和类变量(static修饰的变量)的区别:
类变量:随着类的加载而加载,存放在方法区中,生命期与类一样
实例变量:随着对象的创建而创建,存放在堆内存中,随着对象消失而消失
使用static注意:
静态方法只能访问静态成员
非静态方法可以访问静态成员
静态方法中,不可以定义this、super关键字,因为静态优先于对象存在
什么时候使用静态:
当对象之间出现共享数据时,使用静态
静态的应用:
将程序中共性的功能抽取出来,一边复用,为了防止该类被其他类创建对象,可以将构造方法私有化
静态代码块:
格式:
<span style="white-space:pre"></span>static{ <span style="white-space:pre"></span> 静态代码块中的执行语句<span style="white-space:pre"></span>}
特点:
随着类的加载(调用了该类的方法)而执行,切只执行一次,用于给类进行初始化,相对少用,优先于主函数
特殊的静态方法:main函数
格式:
public static void main(String []args)
Public :代表该函数的访问权限最大
Static :随着类的加载已经存在
Void:主函数没有具体的返回值
Main:不是关键字,但它是一个特使的单词,可以被jvm识别
String[]args:是一个参数数组,数组的类型是字符串
1.7. 对象的初始化过程
1.因为new用了.class文件,所以先找到class文件并加载进内存
2.执行该类中的static代码块,如果有给该类进行初始化
3.在堆内存中分配空间,分配内存地址
4.在堆内存中建立对象的特有属性,并进行默认初始化
5.对属性进行初始化
6.对对象进行构造代码块初始化
7.对对象进行构造函数初始化
8.将内存地址复制给占内存的变量
1.8.final关键字
1.可以修饰类、变量、函数
2.被final修饰的类,不能被继承,
3.被final修饰的方法,不能被复写
4.被final修饰的变量,是常量,只能被赋值一次
5.内部类定义在类中的局部位置时,只能访问该局部被final修饰的局部变量
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------详细请查看:www.itheima.com- 黑马程序员—Java基础知识
- 黑马程序员——Java基础知识
- 黑马程序员——Java基础知识补充
- 黑马程序员——java基础知识
- 黑马程序员——Java基础知识
- 黑马程序员——Java基础知识
- 黑马程序员——Java基础知识
- 黑马程序员——java基础知识
- 黑马程序员——java基础知识
- 黑马程序员——java-基础知识
- 黑马程序员——java入门基础知识
- 黑马程序员—JAVA基础知识之函数
- 黑马程序员—Java基础知识汇总
- 黑马程序员——黑马学习日记1-Java基础知识
- 黑马程序员 java 基础知识
- 黑马程序员---- java基础知识
- 黑马程序员 Java基础知识
- 黑马程序员-----JAVA基础知识
- 关于linux vim命令
- java经常问到的知识
- 动物统计 nyoj286
- 2 掌握MySQL的SELECT语法
- RichEditControl 的背景色设置
- 黑马程序员——java基础知识
- El el表达式,判断是否为空
- 腾讯的一道面试题
- 万能的产品策划公式
- 【HDU】2242 考研路茫茫——空调教室 双连通分量+树型DP
- JSP中<base href="<%=basePath%>">作用
- 深入理解JavaScript系列 ----(14):作用域链(Scope Chain)
- 理解Fragment的生命周期(2)
- apue.h头文件