JAVA基础复习六-面向对象
来源:互联网 发布:mac邮件图片无法显示 编辑:程序博客网 时间:2024/06/05 20:58
一、面向对象特征
封装(encapsulation)继承(inheritance)多态(polymorphism)一个对象的内存图:
如图所示,1.通过javac.exe将.java文件编译为.class字节码文件;2.java.exe运行.class字节码文件;3.JVM将.class字节码文件放入内存中的方法区;4.主方法压栈开始执行,先将Car.class文件也加载进内存方法区;5.先在堆内存中分配空间,创建new Car()的对象,并在栈内存中给对象的引用附上对象的地址值。6.引用变量给对象的成员方法赋值,调用run()方法,run()方法进栈,执行,出栈。主方法执行完毕,出栈。如果没有任何引用指向一个对象,那么该对象就变成了垃圾,java中有完善的垃圾回收机制,不定时的清理垃圾。而只要该对象一直被某个引用持有着,那么就不那么容易被回收。主要是看该引用是强引用、弱引用还是什么的。
二、成员变量和局部变量的区别
成员变量和局部变量的区别A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上B:在内存中的位置不同 成员变量:在堆内存(成员变量属于对象,对象进堆内存) 局部变量:在栈内存(局部变量属于方法,方法进栈内存)C:生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失D:初始化值不同 成员变量:有默认初始化值 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。成员变量如果是基本数据类型,默认初始化值就是相应的:byte、short、int、long为0;float、double为0.0;char为‘\u0000’转义Unicode编码的16进制的0;boolean为false;如果是引用数据类型,默认初始化值就是null;引用数据类型包括:数组、类、接口、枚举;String.class是类,所以默认初始化值也是null。
三、匿名对象
匿名对象应用场景调用方法,仅仅只调用一次的时候。好处:节省代码 注意:调用多次的时候,不适合。匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。
四、封装
A:封装概述是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。B:封装的好处隐藏实现细节,提供公共的访问方式提高了代码的复用性提高安全性。C:封装原则将不需要对外提供的内容都隐藏起来。即外部无法调用类内部的操作即为封装。private关键字与封装:封装和private的应用:*A:把成员变量或成员方法用private修饰*B:把成员变量提供对应的getXxx()和setXxx()方法,private修饰的成员方法无法被外部访问。*private仅仅是封装的一种体现形式,不能说封装就是private,因为默认修饰符修饰的成员变量和方法外部也无法使用。
阅读全文
0 1
- JAVA基础复习六-面向对象
- Java基础复习:面向对象练习1
- Java基础复习---面向对象程序设计
- JAVA基础复习七-面向对象二
- JAVA基础六—面向对象二
- Java基础<六>----面向对象(二)
- java基础六(面向对象)
- java面向对象复习
- java面向对象复习
- Java 面向对象复习
- java面向对象复习
- java基础复习之面向对象语法基础
- 重拾java基础(六):面向对象基础总结
- 黑马程序员 java基础复习二 之面向对象
- java基础复习 面向对象,String类,正则表达式
- 黑马程序员--java基础复习之面向对象
- 黑马程序员—java基础复习—面向对象
- Java复习笔记+经验总结-02 面向对象基础
- 运用X11 API的小例子
- deeplabV2在ubuntu16.04下的配置问题
- JSP的内置对象
- hibernate对象三种状态
- 我看java web项目的发布
- JAVA基础复习六-面向对象
- Ubuntu下deb包的安装方法
- 几种距离的集中比较
- python学习笔记(九)——类和对象
- Fliptile POJ
- 实验七:将menu设计为可重用的子系统
- linux下svn服务器搭建
- python3.5 tensorflow安装简明教程(Linux下Anaconda安装)
- 一文入门BP神经网络——从原理到应用(应用篇)