java对象
来源:互联网 发布:网络说说控红人qq号 编辑:程序博客网 时间:2024/05/19 00:54
- 面向对象是相对面向过程而言,面向对象和面向过程都是一种思想,面向对象时基于面向过程的。
- 面向对象三大特征:封装,继承,多态。
- 匿名对象调用方法有意义,调用属性没有意义!
- 当对象的方法只被调用一次时,可以使用匿名对象来完成,这样写比较简化。
- 匿名对象可作为实际参数进行传递。
- 构造代码块:作用:给对象进行初始化;对象一建立就运行,而且优先于构造函数执行。
- 构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化。
- this:哪个对象调用this所在的函数,this就代表哪个对象。
- static修饰的成员变量,在内存中被共享,不必每个对象都要存储,所以是节约内存空间的。
- 用static修饰后,可以用类名直接调用。
- static的特点:1)随着类的加载而加载(随着类的消失而消失,说明他的生命周期最长);2)优先于对象存在(静态先存在,对象是后存在的);
- static的注意事项:静态方法不能调用非静态的方法或属性;原因是静态方法是跟类同时加载到内存中的,但是非静态是跟new对象的时候同时存储于内存中,类是优先于对象的,所以静态不能访问非静态的。
- 静态方法中是不能出现this,super关键字的。原因跟上同,this,super是对象调用的,所以不能出现。
什么情况下创建静态方法呢?
答:如果当前方法中没有使用该类中的属性数据时,那么该方法就应该创建成静态的。
创建一个对象的先后顺序?
1)找类名.class文件并加载到内存中。
2)执行该类中static代码块,有的话,给类名.class进行初始化。
3)在堆内存中开辟空间,分配内存地址。
4)在堆内存中建立对象的特有属性,并进行默认初始化。
5)对属性进行显示初始化。
6)对对象进行构造代码块初始化。
7)对对象进行对应的构造函数初始化
8)将内存地址赋给栈内存中的变量。
单例对象分为两种:饿汉式和懒汉式;定义单例时最好用懒汉式;
继承:
1)提高了代码的复用性;
2)让类与类之间产生了关系,有了这个关系,才有了多态的特性;
java语言中:只支持单继承,不支持多继承;但是支持多层继承;
因为继承的2个父类中存在相同的方法,而内容不同,则子类就不知道要调用哪个父类的方法了。
关键字super是用来继承父类的属性或者是方法。
覆盖(重写):当子类和父类的函数一样时,用子类对象调用该函数,会运行子类函数的内容,父类函数会被覆盖。需要注意的是:子类的权限必须大于等于父类的权限,才可以覆盖,否则编译失败。
重写:子类父类方法要一模一样;
重载:只看同名函数的参数列表;
子父类中的构造函数。
在对子类对象进行初始化时,父类的构造函数也会运行,那是因为子类的构造函数默认第一行有一条隐式的super()语句;
super():会访问父类中空参数的构造函数。而且子类中所有的构造函数默认第一行都是super()。
如果显示的在子类中调用父类的有参构造函数,则就不会调用父类中的无参(默认)构造函数。
子类构造函数的第一行也可以是this语句来访问本类中的构造函数,但是子类中至少会有一个构造函数会访问父类中的构造函数。
final关键字:表示最终,是一个修饰符。 可以修饰类,函数,变量;
- final修饰的类不可以被继承。
- final修饰的函数不能被覆盖(重写)。
- final修饰的变量只能被赋值一次,不能被改变。
abstract关键字:表示抽象,可以修饰类,函数(方法)。
- 抽象方法一定要在抽象类中,并且抽象方法是不能有方法体的。
- 抽象类不能用new创建对象,因为那样没有意义(没有方法体,所以没意义)。
- 抽象类中的抽象方法要被使用,必须由子类来复写所有抽象方法,才能有子类对象去调用。如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
- 抽象类中可以不定义抽象方法,定义抽象的类的作用就是不让该类被实例化。
- 接口类中的变量声明格式:public static final 变量名 = 赋值;
- 接口类中的方法格式:public abstract 返回类型 方法名(参数类型 参数);
- 接口中必须按照以上类型声明,如果不按照以上格式声明,则java编译器会自动把你的代码写成以上的class文件。
- 接口不能被创建对象,因为他有抽象方法。
- 接口可以被类多实现。也就是说一个类可以实现多个不同的接口。
- 接口与接口之间的关系是继承关系,不能是实现。
- Java对象
- Java对象
- java对象
- JAVA-对象
- java对象
- Java 对象
- Java对象
- java对象
- Java 对象
- java对象
- java对象
- java对象
- java对象
- Java 对象
- Java对象
- java对象
- Java对象
- java----Java面向对象
- zoj_1095 Humble Numbers
- 追加文件内容
- 交通灯管理系统
- OpenStack 扩展API
- Vim as Python IDE on windows
- java对象
- oj练习2
- FCKeditor2.6的使用和配置
- JiaThis WordPress分享插件安装全攻略
- CSDN的第一篇博客
- ARMv7架构特点
- 在js和html标签中input onfocus的不同用法
- JS 实现 腾讯、新浪、网易、搜狐微博,开心网,人人网转帖分享功能
- 黑马程序员_java接口与抽象类总结