java基础入门之五(面向对象+this)
来源:互联网 发布:算法统宗中的问题 编辑:程序博客网 时间:2024/05/28 04:55
面向过程:强调的是功能行为。
面向对象:相对面向过程而言,基于面向过程。
将功能封装进对象,强调具备了功能的对象。
特征:封装,继承,多态
封装:隐藏对象的属性和实现细节,仅对外提供公共的访问方式
优点:1.将变化隔离
2.便于使用
3.提供重用性
4.提高安全性
原则:1.将不需要对外提供的内容都隐藏起来
2.把属性都隐藏,提供公共方法对其访问
private:私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)
范围:在本类中有效
注意:私有仅仅是封装的一种表现形式
------------------------------
类和对象的关系:
类:对现实生活中事物的描述,提取对象中的共性内容
对具体的抽象。定义类,就是在定义属性和行为。
对象:就是这类事物,实实在在存在的个体
成员变量和局部变量:
作用范围:1.成员变量作用于整个类中。
2.局部变量作用于函数或语句中。
在内存位置:1.在堆内存中,因为对象存在,才在内存中存在
2.存在栈内存中。
匿名对象使用方式:1.当对象的方法只调用一次时,可以用匿名对象来完成。
如果对一个对象进行多个成员调用,必须给对象取名字。
2.可以将匿名对象作为实际参数进行传递
---------------------------------
构造函数:给对象进行初始化
特点:1.函数名与类名相同
2.不用定义返回值类型
3.不可以写return语句
注意:1.默认构造函数的特点
2.多个构造函数是以重载的形式存在的
细节:当类中没有定义构造函数时,系统会默认给该类加一个空参数的构造函数
没有构造函数,就不能建立对象。
当在类中自定义了构造函数后,默认的构造函数就没了
与一般函数的区别:1.写法不同
2.运行上不同。构造函数是对象一建立就运行,给对象初始化,只运行一次。
一般方法是对象调用才执行,是给对象添加对象具备的功能,可被调用多次
什么时候定义构造函数:当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数中。
构造代码块:给对象进行初始化,定义的是不同对象共性的初始化内容
对象一建立就运行,优先于构造函数执行。
和构造函数的区别:1.构造代码块是给所有对象进行统一初始化
2.构造函数是给对应的对象初始化。
------------------------------
class A
{
private int age;
A( int age )
{
age = age;//先找局部,然后找成员
}
void fun()
{
System.out.printf("age="+age);//输出age=0
}
}
this关键字:代表本类对象,代表它所在函数所属对象的引用
哪个对象在调用this所在的函数,就代表哪个对象
应 用:当定义类中功能时,该函数内部要用到该函数的对象时,
可以使用this来表示这个对象。
this在构造函数间调用,示例如下:
注:this语句只能定义在构造函数第一行,因为初始化要先执行。
class A
{
private int a;
private int b;
A( int a )
{
this.a = a;
}
A( int a, int b )
{
this(a);
this.b = b;
}
}
- java基础入门之五(面向对象+this)
- java学习基础面向对象之this和static关键字 五-4
- Java基础之面向对象(五)
- 《java入门第一季》之面向对象this关键字
- Java基础<五>---> 面向对象与类(匿名对象、构造函数、this、静态等)
- Java基础之面向对象(五)--内部类
- Java基础之面向对象(五)--内部类
- java基础学习面向对象之封装 五-2
- java学习基础面向对象之构造方法 五-3
- java基础学习面向对象之继承 五-7
- java基础学习面向对象之代码块 五-8
- java基础学习面向对象之final关键字 五-9
- java基础--面向对象入门
- java基础-面向对象-this关键字
- Java基础(五)OOP面向对象之(一) 面向对象思想初识
- Java基础(五)OOP面向对象之(二) 面向对象思想综述
- Java基础(五)OOP面向对象之(三) 面向对象思想概述(续)
- Java基础(五)OOP面向对象之(三) 面向对象思想总结
- Java 多文件夹合并
- 目标板挂载NFS时 需要nolock参数
- 高效程序员的7个共同特征
- 以后写函数要考虑多一些
- lua 脚本 string.find 查找关于 ( ) 的问题
- java基础入门之五(面向对象+this)
- c primer plus 读书笔记1
- STM8S和STM32的IWDG(Independent watchdog)设置
- C++基于ATL工程编写ActiveX控件步骤
- 我们的信任:为什么有时信任,有时不信任
- 硕士毕业论文插页码
- 3D matlab 图像旋转
- 乐视TV超级电视今日发布 互联网入侵传统电视
- [reportlab教程](1) – 第一个Hello, reportlab的例子