黑马程序员--Java基础语法之面向对象
2015-03-18 22:10
288 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
-------
1、面向对象的三个特征: 封装(ncapsulation) 继承(Inheritance) 多态(Polymorphism)
2、对象的构造函数特点:1.函数名与类名相同、2.不用定义返回值类型、3.不可以写return语句。
当一个类中没有定义构造函数时,那么系统就会默认给该类加入一个无参的构造函数,当在类中自定义了有参构造函数后,默认的无参构造函数就没有了,所以有时需要显示的把无参构造函数在类中写出来。
3、构造代码块的作用:给对象进行初始化。对象一建立就运行,而且优先于构造函数运行。
和构造函数的区别:1、构造代码块是给所以对象进行初始化;2、而构造函数是给对应的对象初始化。
构造代码块中定义的是不同对象共性的初始化内容。
4、this的两种用法:1、用于区分同名变量的情况,主要是成员变量和局部变量同名的时候;2、用于构造函数间调用。
5、static特点:1、随着类的加载而加载。静态会随着类的消失而消失,说明它的生命周期最长。
2、优先于对象存在。明确一点:静态是先存在。对象是后存在。
3、被所有对象所共享。
4、可以直接被类名所调用。
由于静态成员可以直接被类名调用,故静态成员变量又称为类变量,而非静态成员变量又被称为实例变量。
实例变量和类变量的区别:
1、存放位置: 类变量随着类的加载而存在于方法区中;实例变量随着对象的建立而存在于堆内存中。
2、生命周期: 类变量生命周期最长,随着类的消失而消失;实例变量生命周期随着对象的消失而消失。
静态使用注意事项:
1、静态方法只能访问静态成员,非静态方法既可以访问静态也可以访问非静态。
2、静态方法中不可以定义this,super关键字。因为静态优先于对象存在。所以静态方法中不可以出现this。
3、主函数是静态的。
静态代码块:
static {
静态代码块中的语句。
}
特点:随着类的加载而执行,执行一次,并优先于主函数用,于给类进行初始化。
6、对象的初始化过程,new一个新对象做以下几件事情:
1、把类名.class文件加载到内存中
2、执行该类中的static代码块,如果有得话,给该类进行初始化
3、在堆内存中开辟空间,分配内存地址给对象
4、在堆内存中建立对象的特有属性,并进行默认初始化
5、对属性进行显示初始化
6、对对象进行构造代码块初始化
7、对对象进行对应构造函数初始化
8、将内存地址赋给栈内存中的对象名变量
7、接口与抽象类
相同点:都是不断向上抽取出来的抽象的概念。
区别:1、抽象类体现继承关系,一个类只能单继承;接口体现实现关系,一个类可以多实现,同时接口与接口之间有继承关系。
2、抽象类是继承,是 "is a "关系;接口是实现,是 "like a"关系。
3、抽象类中可以定义非抽象方法,供子类直接使用;接口的方法都是抽象,接口中的成员都有固定修饰符。
4、抽象类中可以私有变量或方法;接口中的常量和方法都是public修饰的权限。
-------
1、面向对象的三个特征: 封装(ncapsulation) 继承(Inheritance) 多态(Polymorphism)
2、对象的构造函数特点:1.函数名与类名相同、2.不用定义返回值类型、3.不可以写return语句。
当一个类中没有定义构造函数时,那么系统就会默认给该类加入一个无参的构造函数,当在类中自定义了有参构造函数后,默认的无参构造函数就没有了,所以有时需要显示的把无参构造函数在类中写出来。
3、构造代码块的作用:给对象进行初始化。对象一建立就运行,而且优先于构造函数运行。
和构造函数的区别:1、构造代码块是给所以对象进行初始化;2、而构造函数是给对应的对象初始化。
构造代码块中定义的是不同对象共性的初始化内容。
4、this的两种用法:1、用于区分同名变量的情况,主要是成员变量和局部变量同名的时候;2、用于构造函数间调用。
5、static特点:1、随着类的加载而加载。静态会随着类的消失而消失,说明它的生命周期最长。
2、优先于对象存在。明确一点:静态是先存在。对象是后存在。
3、被所有对象所共享。
4、可以直接被类名所调用。
由于静态成员可以直接被类名调用,故静态成员变量又称为类变量,而非静态成员变量又被称为实例变量。
实例变量和类变量的区别:
1、存放位置: 类变量随着类的加载而存在于方法区中;实例变量随着对象的建立而存在于堆内存中。
2、生命周期: 类变量生命周期最长,随着类的消失而消失;实例变量生命周期随着对象的消失而消失。
静态使用注意事项:
1、静态方法只能访问静态成员,非静态方法既可以访问静态也可以访问非静态。
2、静态方法中不可以定义this,super关键字。因为静态优先于对象存在。所以静态方法中不可以出现this。
3、主函数是静态的。
静态代码块:
static {
静态代码块中的语句。
}
特点:随着类的加载而执行,执行一次,并优先于主函数用,于给类进行初始化。
6、对象的初始化过程,new一个新对象做以下几件事情:
1、把类名.class文件加载到内存中
2、执行该类中的static代码块,如果有得话,给该类进行初始化
3、在堆内存中开辟空间,分配内存地址给对象
4、在堆内存中建立对象的特有属性,并进行默认初始化
5、对属性进行显示初始化
6、对对象进行构造代码块初始化
7、对对象进行对应构造函数初始化
8、将内存地址赋给栈内存中的对象名变量
7、接口与抽象类
相同点:都是不断向上抽取出来的抽象的概念。
区别:1、抽象类体现继承关系,一个类只能单继承;接口体现实现关系,一个类可以多实现,同时接口与接口之间有继承关系。
2、抽象类是继承,是 "is a "关系;接口是实现,是 "like a"关系。
3、抽象类中可以定义非抽象方法,供子类直接使用;接口的方法都是抽象,接口中的成员都有固定修饰符。
4、抽象类中可以私有变量或方法;接口中的常量和方法都是public修饰的权限。
相关文章推荐
- 黑马程序员——高新技术---Java基础语法—面向对象_构造方法,static 关键字
- 黑马程序员——Java基础语法 之面向对象(概念,特征,this,static关键字,代码块)
- 黑马程序员JAVA基础-面向对象
- 黑马程序员——java基础——面向对象
- 黑马程序员——Java基础——面向对象的特征(一)
- 黑马程序员---java基础之面向对象(二)
- 黑马程序员-(9)Java基础之面向对象(四)多态
- 黑马程序员——Java基础语法 之运算符
- 黑马程序员_java基础之面向对象(三)
- 黑马程序员—java语法基础
- 黑马程序员_Java基础_面向对象(二)_06
- 黑马程序员--Java基础学习笔记【二维数组、面向对象】
- Java基础语法(一)---关键字、常量、变量、运算符 (黑马程序员)
- 黑马程序员--Java基础之面向对象二
- 黑马程序员—java技术blog—第六篇面向对象_多态概述及基础应用
- 黑马程序员-Java基础知识预备之Java面向对象的理解(part2)
- 黑马程序员————java基础--------java语法基础之运算符、关键字等
- 黑马程序员----Java语法基础(2){语句,函数,数组}
- 黑马程序员_JAVA开发环境和语法基础
- 黑马程序员-java基础加强_面向对象