黑马程序员_Java基础05天日志
来源:互联网 发布:侠客风云传 招式数据 编辑:程序博客网 时间:2024/05/23 19:17
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1. 面向对象
1.1概述:将功能封装进对象,强调具备了功能的对象。面向对象是相对面向过程而言, 和面向过程都是一种思想. 面向对象是基于面向过程的。
2.类,对象,类和对象的关系
2.1 类就是对现实生活中事物的描述。例学员。对象就是这类事物,实实在在存在的个体。例 学员张三。类就是提取对象中的共性内容,对具体对象的抽象。定义类其实就是在定义类中的成员(成员变量和成员函数)
2.2 类的实例就是对象。具体步骤,实例化Car类通过new操作符来实现。Car car=new Car(); car可以取任意名。只是给这个新的Car对象起个名字而已。car是个类类型变量,它指向对象。
2.3调用对象里面的属性,用对象名.属性来实现。调用对象里面的方法,用对象名. 方法来实现。
2. 成员变量和局部变量
2.1:成员变量
• 成员变量定义在类中,在整个类中都可以被访问。
• 成员变量随着对象的建立而建立,存在于对象所在的堆内
存中。
• 成员变量有默认初始化值。
2.2:局部变量:
• 局部变量只定义在局部范围内,如:函数内,语句内等。
• 局部变量存在于栈内存中。
• 作用的范围结束,变量空间会自动释放。
• 局部变量没有默认初始化值。
class demo
{
publicint number;
publicvoid max()
{
publicint max;
}
}
上面代码中的number即是成员变量,max方法中的max变量即是局部变量。
3. 匿名对象
3.1 概念:即是没有名字的对象。匿名对象是对象的简化形式。
3.2格式:new Car();
3.3 使用情况:1.当对对象方法仅进行一次调用的时 例:new Car().show(); 2. 匿名对象可以作为实际参数进行传递 例:public static void show(Car c){} show(new Car());
4.封装
4.1概述:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
4.2 好处:1.将变化隔离
2.便于使用 使用者不用取了解内部构造就可以使用,是使用更加简单。
3.提高重用性 封装好后,日后可以重复使用。
4.提高安全性
4.3 封装原则:1.将不需要对外提供的内容都隐藏起来。
2.把属性都隐藏,提供公共方法对其访问。
5.封装private
5.1 概述:private ,私有,权限修饰符。用于修饰类中的成员(成员变量,成员函数)。私有只有在本类中有效。
5.2 注:私有仅仅是封装的一种表现形式。
5.3 将属性私有化以后,类以外即使建立对象也不能够访问。
6.构造函数
classPerson{ privateString name; private int age; Person() { System.out.println("A:name="+name+",,age="+age); }}
6.1作用:给对象进行初始化。对象一建立就会调用与之对应的构造函数。
6.2 特点:
1. 函数名与类名相同
2. 不用定义返回值类型
3. 不可以写return语句
6.3 注意:
1. 默认构造函数的特点。 若没有自定义构造函数,系统会默认定义一个没有参数的空构造函数。若有自定义构造函数,则不会默认定义。
2. 多个构造函数是以重载的形式存在的。同函数名,不同返回类型,不同参数类型。
6.4 一般函数和构造函数的区别
在运行上不同:构造函数是在对象一建立就运行,给对象初始化。而一般函数(方法)是对象调用才执行,给对象添加对象具备的功能。一个对象建立,构造函数只运行一次。而一般方法可以被该对象调用多次。
6.5 什么时候定义构造函数?
当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数中。
7.构造代码块
7.1作用:给对象进行初始化。对象一建立就运行,而且优先于构造函数执行。
7.2 与构造函数的区别:构造代码块是给所有对象进行统一初始化。而构造函数是给对应的对象初始化。构造代码中定义的是不同对象共性的初始化内容。
7.3 格式 :
{
System.out.println("personcode run");
cry();
}
在调用构造函数的时候,会先调用这构造代码块。
8.this 关键字
8.1 代表它所在函数所属对象的引用。简单来说,哪个对象在调用this所在的函数,this就代表哪个对象。
例:
classPerson{ privateString name; private int age; Person(int age) { this.age= age; }} Person p1 = newPerson(20);
这时候,this 代表p1对象。
8.2 什么时候使用this关键字
当在函数内需要用到调用该函数的对象时,就用this。局部变量与成员变量同名时,就加this用于区分。
8.3 this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。但凡本类功能内部使用到了本类对象,都用this表示。
例:
class Person{privateint age;public Booleancompare(Person p){ return this.age=p.age;}}
8.4 this在构造函数间的调用
this();代表无参空的构造函数。
classPerson{ privateString name; private int age; { System.out.println("coderun"); } Person() { System.out.println("personrun"); } Person(String name) { this(); this.name=name; } Person(String name,int age) { this(name); this.age= age; }}
8.5注:This语句只能定义在构造函数的第一行。因为初始化要先执行。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
- 黑马程序员_Java基础05天日志
- 黑马程序员_java基础01天日志
- 黑马程序员_Java基础02天日志
- 黑马程序员_Java基础03天日志
- 黑马程序员_Java基础04天日志
- 黑马程序员_Java基础06天日志
- 黑马程序员_Java基础07天日志
- 黑马程序员_Java基础08天日志
- 黑马程序员_Java基础09天日志
- 黑马程序员_Java基础10天日志
- 黑马程序员_java基础
- 黑马程序员_java基础
- 黑马程序员_java 基础
- 黑马程序员_java基础
- 黑马程序员_Java基础
- 黑马程序员_java基础
- 黑马程序员_java基础
- 黑马程序员_java基础
- Linux之Ubuntu学习003——gcc/g++编译器
- 原来iTunes Connect 的 reject binary 改变为 remove this version from review
- 代理缓存服务器知识点整理
- POJ 1016 - Numbers That Count
- UVA 11019 字符矩阵哈希
- 黑马程序员_Java基础05天日志
- STL set和multiset
- hdu4577(大数+分析)
- listView 不能正常显示
- hdu1068——Girls and Boys
- 在Java程序中使用逻辑块的技巧
- HDU 2298 Toxophily
- 怎样将游戏从Unity导到iOS设备上
- 对类前置声明和包含头文件的一点理解