java基础学习之-05
来源:互联网 发布:薛之谦小孩知乎 编辑:程序博客网 时间:2024/05/18 03:28
面向对象相关的知识点:
1.面向对象思想:面向对象是基于面向过程的编程思想
面向对象思想特点 :
是一种更符合我们思想习惯的思想
可以将复杂的事情简单化
将我们从执行者变成了指挥者
面向对象开发:就是不断的创建对象,使用对象,指挥对象做事情
面向对象设计:其实就是在管理和维护对象之间的关系
面向对象的特征:
封装(encapsulation)
继承(inheritance)
多态(polymorphism
2. 成员变量和局部变量的区别:
在类中的位置不同
成员变量 方法外类内
局部变量 方法内或者方法声明上(方法列表)
在内存中的位置不同
成员变量 堆内存
局部变量 栈内存
生命周期不同
成员变量 随着对象的存在而存在,随着对象的消失而消失
局部变量 随着方法的调用而存在,随着方法的调用完毕而消失
初始化值不同
成员变量 有默认的初始化值
局部变量 没有默认的初始化值,必须先定义,赋值,才能使用。
3.形式参数问题:
基本类型:形式参数的值改变不影响实际参数的值
引用类型:形式参数的值改变直接改变实际参数的值,因为指向的是同一块内存区域
4.匿名对象:
匿名对象:就是没有名字的对象。
是对象的一种简化表示形式
匿名对象的两种使用情况
对象调用方法仅仅一次的时候
作为实际参数传递
5.封装概述:
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:
隐藏实现细节,提供公共的访问方式
提高了代码的复用性
提高安全性。
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
6. Private关键字:
是一个权限修饰符
可以修饰成员(成员变量和成员方法)
被private修饰的成员只有在本类中才能访问
private最常见的应用:
把成员变量用private修饰
提供对应的getXxx()/setXxx()方法
一个标准的案例的使用
7.this关键字
this:代表所在类的对象引用
this所在的方法正在被哪个对象调用,this就代表哪个对象
8.构造方法;
构造方法作用概述
给对象的数据进行初始化
构造方法格式
方法名与类名相同
没有返回值类型,连void都没有
没有具体的返回值
构造方法注意事项
如果你不提供构造方法,系统会给出默认构造方法
如果你提供了构造方法,系统将不再提供
构造方法也是可以重载的
虽然构造方法没有返回值,但是也可以写一个return,在最后写return;这种做法在任何void类型的方法最后都是没有问题的。
9.类的成员方法的分类:
根据返回值
有明确返回值方法
返回void类型的方法
根据形式参数
无参方法
带参方法
10.一个javaBean的标准写法
类
成员变量
构造方法
无参构造方法
带参构造方法
成员方法
getXxx()
setXxx()
初始化时给成员变量赋值的方式
setXxx()
带参构造方法
11.类的初始化过程
Person s = new Person ();在内存中做了哪些事情?
1加载Person .class文件进内存
2在栈内存为s开辟空间
3在堆内存为人类对象开辟空间
4对人类对象的成员变量进行默认初始化
5对人类对象的成员变量进行显示初始化
6通过构造方法对人类对象的成员变量赋值
7人类对象初始化完毕,把对象地址赋值给s变量
12.Static关键字:
可以修饰成员变量和成员方法
static关键字特点
随着类的加载而加载
优先于对象存在
被类的所有对象共享
这也是我们判断是否使用静态关键字的条件
可以通过类名调用
static关键字注意事项
在静态方法中是没有this关键字的
静态方法只能访问静态的成员变量和静态的成员方法
13.静态变量和成员变量的区别
所属不同
静态变量属于类,所以也称为为类变量
成员变量属于对象,所以也称为实例变量(对象变量)
内存中位置不同
静态变量存储于方法区的静态区
成员变量存储于堆内存
生命周期不同
静态变量随着类的加载而加载,随着类的消失而消失
成员变量随着对象的创建而存在,随着对象的消失而消失
调用不同
静态变量可以通过类名调用,也可以通过对象调用
成员变量只能通过对象名调用
14.Main方法是静态的
public static void main(String[]args) {}
public 被jvm调用,访问权限足够大。
static 被jvm调用,不用创建对象,直接类名访问
void被jvm调用,不需要给jvm返回值
main 一个通用的名称,虽然不是关键字,但是被jvm识别
String[] args 以前用于接收键盘录入的
- java基础学习之-05
- Java基础学习之感悟05
- Java基础学习之路
- Java基础学习之路
- 学习java之基础一
- 学习java之基础二
- java学习之路--基础
- Android学习之 Java基础
- Java基础学习之路
- java基础学习之--XML
- Java学习之二进制基础
- java基础学习之数据类型
- java基础学习之final
- java基础学习之AWT
- java基础学习之Layout
- java基础学习之Layout2
- java基础学习之线程
- java基础学习之坦克
- android获取屏幕分辨率代码
- LeetCode 284 Peeking Iterator
- Ubuntu 16.04安装谷歌浏览器
- http://www.cnblogs.com/renyuan/archive/2012/11/07/2758291.html
- 在手机浏览器上jplayer全屏播放视频设置在播放完成或者中间停止播放后手机浏览器的网页不能上下滚屏的解决
- java基础学习之-05
- (18)内容浏览器之开发者文件夹
- 【机房重构】---注册
- 进程通信之管道(PIPE)
- Android中的MVP模式的理解
- 1比特和第二次世界大战?
- LeetCode 341 Flatten Nested List Iterator
- 1039 数的划分
- 嵌入式编程与PC编程有何区别