黑马程序员技术交流社区
标题:
学习笔记
[打印本页]
作者:
miao1991
时间:
2015-9-28 22:09
标题:
学习笔记
面向对象有三个特点:封装、继承、多态
封装:
封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体的实现细节,这就是
封装思想。
继承:
继承主要是体现的是类与类之间的关系,通过继承,可以在无须重新编写原有类的情况下,对原有类的功能
进行扩展。继承不仅增强了代码的复用性,提高了开发效率,而且为程序的修改提供了便利。
多态:
多态性指的是在一个程序中允许出现重名的现象,它指在一个类中定义的属性和方法被其他类继承后,它们
可以具有不同的数据类型或者表现出不同的行为,这使得同一个属性和方法在不同的类中具有不同的含义。
成员变量和局部变量:
在堆内存中,因为对象的存在,才在内存中存在,有默认值,局部变量在栈内存中。
匿名对象的使用方式一:当对象的方法在调用一次时,可以用匿名对象来完成,这样写比较简化。
如果对一个对象进行多个成员的调用,必须给这个对象起个名字。
使用方式二:可以将匿名对象作为实际参数进行传递。
什么时候定义构造函数?
当分析事物时,该事物存在具备一些特性或者行为,那么将这些定义在构造函数中,
构造代码块的作用:给对象进行初始化,对象一建立就运行,而且优先于构造函数执行。
和构造函数的区别:
构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化。
构造代码块中定义的是不同对象共性的初始化内容。
this关键字:
this: 代表它所在函数所属对象的引用。简单说:哪个对象在调用this所在的函数,this就代表哪个对象。
this的应用:当定义类中的功能时,该函数内部都要用到该函数的对象时,这时用this来表示这个对象。
但凡本类功能内部使用了本类的对象,都用this表示。this语句只能用于构造函数的第一行。
static关键字:
静态变量:在定义一个类时,只是在描述某类事物的特征和行为,并没有产生具体的数据。只有通过new关键字
创建该类的实例对象后,系统才会为每个对象分配空间,有时候,我们希望某些特定的数据在内存中只有一份,
能够被一个类的所有实例对象所共享。这时可以用static关键字来修饰成员变量,该变量被称作静态变量。
静态变量被所有的实例共享,可以使用“类名.变量名”的形式来访问。
static关键字只能用于修饰成员变量,不能用于修饰局部变量,否则编译会报错。
静态方法:被static关键字修饰的方法称为静态方法,被所有的实例共享。同静态变量一样,静态方法可以使用
“类名.方法名”的形式来访问,也可以通过实例对象来访问。
静态使用注意事项:
静态方法只能访问静态成员,而非静态方法都可以访问。
静态方法中不可以定义this,super关键字,因为静态优先于对象存在,所以静态方法中不可以出现this
什么时候使用静态?
因为静态修饰的内容有成员变量和函数。当对象中出现共享数据时,该数据被静态所修饰。
当功能内部没有访问到非静态数据时,那么该功能可以定义成静态的。
静态代码块:
static{ } //随着类的加载而执行,只执行一次,并优先于主函数,用于给类进行初始化。
下面请看代码事例:
class StaticCode
{
StaticCode()
{
System.out.println("b");
}
static
{
System.out.println("a");//静态代码块给类初始化
}
{
System.out.println("c");//构造代码块给对象初始化
}
StaticCode(int x)
{
System.out.println("d");
}
public static void show()
{
System.out.println("show run");
}
}
class StaticDemo
{
public static void main(String[] args)
{
//System.out.println("Hello World!");
new StaticCode(4);
}
}
作者:
纳木错的程序猿
时间:
2015-9-28 22:16
这个总结的好,正好学到这来了,有些疑惑。
作者:
桑葚之甜
时间:
2015-9-28 23:10
明天就要学这个了,很实用,赞一个
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2