黑马程序员:Java之介绍对象、封装、构造函数、构造代码块及this关键字
2013-10-18 17:23
239 查看
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
什么是面向对象?
面向对象是一种将复杂的东西简单化的思想,有三个特征:封装、继承、多态
从生活出发,理解类与对象的关系
类:对现实生活中事物的描述,描述包含事物的属性和行为
对象:这类事物,实实在在存在的个体
举个简单的例子:
技术主管吩咐开发专员开发一个功能模块。
开发专员就是一个对象,技术主管只要通过这个对象就可以实现想要的功能,而开发专员具体怎么开发技术主管不需要知道。
成员变量与成员函数
上面讲到类就是对事物的描述,包含事物的属性和行为,即变量与方法,定义的变量为成员变量,方法为成员函数。
成员变量与局部变量的作用范围
成员变量:成员变量作用于整个类中
局部变量:局部变量作用于函数中或语句中(for语句)
成员变量与局部变量在内存中的位置
成员变量:在堆内存中,随对象的存在而存在。不赋值也可参与运算,堆内存中的变量会自动默认初始化
局部变量:存在栈内存中。不赋值是不能参与运算的。栈内存中的变量不会默认初始化
建立对象的方法:
注:对象存在与堆内存中,p是一种类类型变量,属于一种引用型变量,p引用堆内存中的new Person()
匿名对象
格式:new Person();
匿名对象的使用方式
当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。
可以将匿名对象作为实际参数进行传递。
注:如果对一个对象进行多个成员调用,必须给这个对象起个名字。
封装(Encapsulation)
封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:将变化隔离,便于使用,提高重用性,提高安全性。
封装原则:将不需要对外提供的内容都隐藏起来,可通过private私有化
把属性都隐藏,提供公共方法对其访问。
构造函数
特点:
函数名与类名相同
不用定义返回值类型
不可以写return语句
每个类都有一个默认的构造函数Person(){},默认构造函数看不到,定义了就成自定义构造函数了,默认构造函数的权限随着类的变化而变化
多个构造函数式以重载的形式存在
若写了带有参数的构造函数即指定构造函数(Person(int x){}),一定要自定义Person(){} 这个原来被默认的构造函数,否则在很多时候会出错,比如new Person(); 这时候会初始化Person(int x){},而因对象没传入参数而编译出错;再比如存在继承关系的时候,自定义构造函数中存在super();会因定义了Person(int
x){}而没定义Person(){}导致“无法将类 Person中的构造器 Person应用到给定类型”错误
作用:给对象进行初始化(对象一建立,就会调用与之对应的构造函数)
构造函数和一般函数的执行时间
构造函数:对象一建立就运行,给对象初始化,一个对象建立,构造函数只执行一次。
一般函数:当被调用时才执行。可被对象调用多次。
什么时候定义构造函数?
当分析事物时,该事物本身存在一些特性或者行为,那么将这些内容定义在构造函数中
构造代码块
作用:给对象进行初始化
对象一建立就运行,而且优先于构造函数执行。
构造代码块和构造函数的区别
构造代码块是给所有对象进行统一初始化
构造函数是给对应的对象初始化
this关键字
this代表它所在函数所属对象的引用。哪个对象在调用this所在的函数,this就代表哪个对象
this的应用:本来函数中用到本类对象时,使用this关键字引用
this语句,用于构造函数之间互相调用 this(name); 构造函数之间调用只能用this。
this语句只能放在函数的第一行。原因是初始化的动作先执行,再执行赋值的初始化
注意:this语句调用得注意避免出现死循环
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
什么是面向对象?
面向对象是一种将复杂的东西简单化的思想,有三个特征:封装、继承、多态
从生活出发,理解类与对象的关系
类:对现实生活中事物的描述,描述包含事物的属性和行为
对象:这类事物,实实在在存在的个体
举个简单的例子:
技术主管吩咐开发专员开发一个功能模块。
开发专员就是一个对象,技术主管只要通过这个对象就可以实现想要的功能,而开发专员具体怎么开发技术主管不需要知道。
成员变量与成员函数
上面讲到类就是对事物的描述,包含事物的属性和行为,即变量与方法,定义的变量为成员变量,方法为成员函数。
成员变量与局部变量的作用范围
成员变量:成员变量作用于整个类中
局部变量:局部变量作用于函数中或语句中(for语句)
成员变量与局部变量在内存中的位置
成员变量:在堆内存中,随对象的存在而存在。不赋值也可参与运算,堆内存中的变量会自动默认初始化
局部变量:存在栈内存中。不赋值是不能参与运算的。栈内存中的变量不会默认初始化
建立对象的方法:
匿名对象
格式:new Person();
匿名对象的使用方式
当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。
可以将匿名对象作为实际参数进行传递。
封装(Encapsulation)
封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:将变化隔离,便于使用,提高重用性,提高安全性。
封装原则:将不需要对外提供的内容都隐藏起来,可通过private私有化
把属性都隐藏,提供公共方法对其访问。
构造函数
特点:
函数名与类名相同
不用定义返回值类型
不可以写return语句
每个类都有一个默认的构造函数Person(){},默认构造函数看不到,定义了就成自定义构造函数了,默认构造函数的权限随着类的变化而变化
多个构造函数式以重载的形式存在
若写了带有参数的构造函数即指定构造函数(Person(int x){}),一定要自定义Person(){} 这个原来被默认的构造函数,否则在很多时候会出错,比如new Person(); 这时候会初始化Person(int x){},而因对象没传入参数而编译出错;再比如存在继承关系的时候,自定义构造函数中存在super();会因定义了Person(int
x){}而没定义Person(){}导致“无法将类 Person中的构造器 Person应用到给定类型”错误
作用:给对象进行初始化(对象一建立,就会调用与之对应的构造函数)
构造函数:对象一建立就运行,给对象初始化,一个对象建立,构造函数只执行一次。
一般函数:当被调用时才执行。可被对象调用多次。
什么时候定义构造函数?
当分析事物时,该事物本身存在一些特性或者行为,那么将这些内容定义在构造函数中
构造代码块
作用:给对象进行初始化
对象一建立就运行,而且优先于构造函数执行。
构造代码块和构造函数的区别
构造代码块是给所有对象进行统一初始化
构造函数是给对应的对象初始化
this关键字
this代表它所在函数所属对象的引用。哪个对象在调用this所在的函数,this就代表哪个对象
this语句,用于构造函数之间互相调用 this(name); 构造函数之间调用只能用this。
this语句只能放在函数的第一行。原因是初始化的动作先执行,再执行赋值的初始化
注意:this语句调用得注意避免出现死循环
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
相关文章推荐
- 黑马程序员_Java基础_面向对象(概述、类与对象关系、成员变量、封装private、构造函数和构造代码块、this关键字)
- 黑马程序员——Java基础---面向对象(面向对象,类,对象,匿名对象,封装,构造函数,构造代码块,this,static,main,帮助文档,静态代码块,单例)
- 黑马程序员 JAVA初级-面向对象 匿名对象、封装、构造函数、构造代码块、this
- JAVA面向对象知识点总结(2)—封装、构造函数、构造代码块、this关键字
- 黑马程序员--03.Java面向对象--01.【OOP基本概念】【匿名对象】【封装】【构造函数】【this关键字】
- Java重修之路(六)面向对象初识,类与对象,成员变量,局部变量,封装,构造函数,构造代码块,this关键字
- 黑马程序员——>第五天<面向对象(匿名对象-封装-构造代码块-this关键字)>
- Java基础--面向对象(封装、构造函数、构造代码块、this关键字)
- 黑马程序员_Java基础_面向对象,封装,继承,单例设计模式,构造函数,构造代码块
- 黑马程序员-----java面向对象之封装、构造函数、this关键字、static静态总结*
- 黑马程序员—Java面向对象(类和对象、封装、构造方法、this关键字、static关键字)
- 第十七、Java面向对象之构造函数与构造代码块
- 黑马程序员-JAVA对象封装构造
- 6.1面向对象(介绍,类与对象,封装,this关键字,构造方法,static关键字)
- 面向对象_成员变量_ 局部变量_匿名对象_封装_构造函数_构造代码块
- 黑马程序员_JAVA笔记05 ——面向对象1(类与对象关系、封装、构造函数、this)
- 黑马程序员_java静态代码块、构造代码块和构造函数的执行时间分析
- 黑马程序员——java第五天:面向对象(类、对象、变量、封装、构造、this)
- 黑马程序员——学习日志4面向对象(概念,类与对象,封装,构造函数,this关键字)
- 黑马程序员——第5天——(面向对象)构造函数,构造代码块,this关键字