javase-面向对象
来源:互联网 发布:小说改编的悬疑网络剧 编辑:程序博客网 时间:2024/04/26 16:02
一.面向对象的基本特征
1.封装
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:将变化隔离;便于使用;提高重用性;安全性。
封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。
2.继承
javase-继承
3.多态
二.访问控制符
注:protected修饰的,在不同包中通过对象不能访问,但继承后能在子类中访问。
三.成员变量(属性)与局部变量
1.局部变量必须初始化,而没有初始化的成员变量则会自动赋一个默认值。
2.成员变量直接定义在类中。
局部变量定义在方法中,参数上,语句中。
3.成员变量在这个类中有效。
局部变量只在自己所属的大括号内有效,大括号结束,局部变量失去作用域。
4.成员变量存在于堆内存中,随着对象的产生而存在,消失而消失。
局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放。
四.构造方法
1.对象初始化时调用。
2.如果一个类中没有写构造方法,会有一个默认的无参构造方法,如果写上自定义的构造方法,默认的构造方法就不再起作用。
3.构造方法可重载,但不可重写,因为构造方法不可继承。
4.static不能修饰构造方法,因为构造方法是类创建对象时调用的,必须依赖于对象,而static则不依赖于对象。
5.final不能修饰构造方法,因为构造方法不能被继承,用final修饰方法的目的是不允许被重写,所以final修饰构造方法没有意义。
五.创建对象的过程
如:Cat c = new Cat();
1.创建对象的第一步在方法区中查找对象对应的类是否已经被加载,如果没有被加载,就加载这个类Cat.class,如果已经被加载了,就不在加载了。
2.方法区中加载不是类型的全部,而是在类型中有定义并且实现的方法。
3.加载完毕以后开始创建对象,对象在堆区,对象中会保存属性和方法的指针。
c.init("小张", 250, 250, 250, 520);
方法的调用过程
1.在Cat类型的定义中找到init方法的定义。找不到就报错。
2.找init方法的修饰符,看看能不能被调用,不能调用就报错。
3.从对象名保存的地址开始查找方法的指针,找到指针以后,从指针位置找到方法,并执行。
内存图:
六.this
1.this表示当前对象。
/* 2015年12月24日13:00:42 目的:this的用法。*/class A{ public int i; public A(int j) { i = j; } // public void show(A*this) this代表当前正在调用show方法的对象。 public void show() { //System.out.printf("i = %d\n", (*this).i); System.out.printf("i = %d\n", i); }}public class This_1{ public static void main(String[] args) {//aa1和aa2可以通过隐藏的指针this,共用同一个方法show A aa1 = new A(10);// aa1.show(aa1)A aa2 = new A(20);// aa2.show(aa2) aa1.show();aa2.show(); }}/****************结果***************i = 10i = 20*/
2.this()表示调用构造方法,但只能在构造方法中使用。
- javaSE-面向对象-简介
- javaSE-面向对象-继承
- javaSE-面向对象-接口
- javaSE-面向对象-多态
- javaSE-面向对象-Object
- javaSE-面向对象-异常
- javaSE-面向对象-包
- javaSE之面向对象
- JavaSE--面向对象
- JavaSE面向对象--QuickHit
- JavaSE面向对象-封装
- JavaSE学习--面向对象
- javase-面向对象
- javaSE:面向对象知识点
- JavaSE面向对象练习
- JAVASE之面向对象
- JavaSE面向对象关键字
- JAVASE----03----面向对象编程
- androidstudio之增加删除library库文件
- BZOJ2818 Gcd[莫比乌斯反演]
- linux中log文件中各个文件对应的内容
- Android 链接Wifi
- 练习1-2
- javase-面向对象
- OI模板·二叉排序树
- Shader编程学习笔记(二)—— Shader和渲染管线
- 水仙花数
- javase-继承
- JavaScript 错误
- RedHat安装MySql
- web测试方法总结(一)
- H5历史状态管理问题——后退前进按钮的重新使用