java面向对象1
来源:互联网 发布:青岛php培训学校 编辑:程序博客网 时间:2024/05/16 02:34
---------------------- android培训、java培训、期待与您交流!----------------------
面向对象与面向过程:
面向过程:强调的是功能行为。
面向对象:将功能封装进对象,强调具备了功能的对象。它是基于面向过程的。
面向对象的三大特征:封装,继承,多态。
类和对象的关系:
类:对现实生活中的事物的描述。
对象:就是这类事物,实实在在存在的个体。对象包括成员变量(属性)和成员方法(功能)。
成员变量和局部变量:
作用范围:
成员变量作用与整个类中,
局部变量作用于函数或语句中。
在内存中的位置:
成员变量:在堆内存中,因为对象的存在,才在内存中存在。
局部变量:存在与栈内存中。
匿名对象:
使用方式一:对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。
二:可以将匿名对象作为实际参数进行传递。
封装(Encapsulation):
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:将变化隔离。
便于使用。
提高重用性。
提高安全性
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性都隐藏,提供公共方法对其访问。
私有仅仅是封装的一种表现形式。
之所以对外提供私有成员的访问方式,就是因为可以再访问方式中加入逻辑判断语句对访问的数据进行操作,提高代码的健壮性。
说明:成员变量可以不赋初值,而参与运算,因为它是存在于堆内存中的。而局部变量不赋初值是不能参与运算的,因为它在栈内存中创建
构造函数:特点:
1. 函数名与类名相同
2. 不用定义返回值类型
3. 对象一建立就会调用与之相对应的构造函数。且一个对象只调用一次
作用:给对象进行初始化
说明:多个构造函数是以重载的形式存在的,当在类中自定义了构造函数后,默认的构造函数就不存在了。
构造代码块:(在类中既不是属性也不是方法的语句块)
作用:给对象进行初始化。
对象一建立就运行,而且优先于构造函数执行。每个对象只运行一次;
和构造函数的区别:
构造代码块是给所有建立的对象进行统一初始化,(构造代码块中定义的是不同对象共性的初始化内容),它不同于静态代码块存在于类中,不能在构造代码块中定义变量;
而构造函数是给对应的对象初始化。
this关键字:
1. 用于区分局部变量成员变量同名的情况
2. 用于构造函数间调用。这是称为this语句。
注意:构造函数间的调用,this语句只能放在构造函数的第一行。
实例:
1.关于java静态语句块,语句块,构造函数的执行顺序:部分参考自:http://www.csdnjava.com/thread-34010-1-1.html
请写出下面程序的执行结果
执行结果如下:
分析:对象的初始化顺序:首先执行父类静态的内容,父类静态的内容执行完毕后,接着往执行子类的静态的内容,当子类的静态内容执行完毕之后,再往看父类有没有非静态代码块,假如有就执行父类的非静态代码块,父类的非静态代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着往看子类有没有非静态代码块,假如有就执行子类的非静态代码块。子类的非静态代码块执行完毕再往执行子类的构造方法。总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法。
而且子类的构造方法,不管这个构造方法带不带参数,默认的它都会先往寻找父类的不带参数的构造方法。假如父类没有不带参数的构造方法,那么子类必须用supper关键子来调用父类带参数的构造方法,否则编译不能通过。
---------------------- android培训、java培训、期待与您交流!----------------------
详情请查看:http://edu.csdn.net/heima
- java 面向对象1
- java面向对象1
- java--面向对象1
- java面向对象1
- JAVA面向对象1
- java复习 面向对象1
- java--面向对象(1)
- java面向对象 练习题1
- Java面向对象编程1
- java 面向对象基础1
- java基础 面向对象1
- java面向对象(1)
- #java读书笔记#面向对象1
- java面向对象思想1
- Java面向对象(1)概述
- Java基础--面向对象1
- java面向对象笔记1
- Java.1面向对象基础
- 网游客户端使用的外部库
- function ain=innerfun() ain=2*b;内部函数调用外部变量
- Vector数据类型
- 快速排序算法
- 全面整理:在美国开车一定要知道的11个交通规则
- java面向对象1
- CSDN博客下载器v2.4发布
- Spring动态获取IoC容器中管理的Bean
- 解决FileZilla不能下载的问题
- Hibernate中多对多关系映射 、查询
- effective c++ 的50个最佳实践(二)
- 关于Linux的视频编程(v4l2编程)
- Oracle安全实战——开发完全的数据库与中间件环境
- 如何用word 2007在指定页插入页码和页眉页脚?