黑马程序员_java 面向对象基础(1)
2013-06-12 11:43
573 查看
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流!
----------------------
1.什么是对象?
例如:人开门 那哪些是对象? 运用名次提炼法 人 门 都是对象
/*人
{
开门(门)
{
门.开();
}
}
门
{
开(){操作门轴等。}
}
*/
面向对象的特征:继承、封装、多态
2.类与对象的关系
类:对现实生活中事物的的描述。
对象:就是这类事物,就是现实存在的个体。
映射到java中描述类就是class定义的类,对象就是对应java在对内存中用new创建的实体。
3.类的定义
定义类就是在描述事物,就是定义事物的属性和行为,属性和行为共同称为类中的成员(成员变量和成员方法)
属性就是对应类中的变量,行为就是对应类中的函数(方法)。
4.成员变量和局部变量
作用范围:成员变量作用于整个类中;局部变量作用于函数或者语句中。
在内存中的位置:成员变量在堆内存中;局部变量存在栈内存中。
class Car
{
String color="
灰色";
int
number =4;
public
void run()
{
System.out.println(" ");
}
}
public
class Demo {
public
static void main(String[] args) {
Car car=new Car();//car
是一个类类型变量,它指向对象
}
}
5.匿名对象
匿名对象的使用方式一:当对象的方法只调用一次时,可以用匿名对象来完成,可以简化代码。
匿名对象的使用方式二:可以将匿名对象作为实际参数进行传递。
class Car
{
String color="
灰色";
int
number =4;
public
void run()
{
System.out.println(" ");
}
}
public
class Demo {
public
static void main(String[] args) {
new Car().run();//匿名对象调用run方法
}
}
6.private关键字
private关键字是权限修饰符,也是封装的一中表现形式,用于修饰类中的成员;private修饰的成员只在本类中有效。
class Person
{
private String
name;
public
void setName(String name)
{
}
public String getName()
{
return
name;
}
}
将name私有后类以外即使建立了对象也不能直接访问。但是外部还需要用到name,就需要在Person类中提供对应的访问name的方式。之所以对外提供访问方式,是因为可以在访问时加入逻辑判断语句,对访问的数据进行操作,提高代码的健壮性。
7.构造函数
构造函数可以用于给对象初始化。
class Person
{
Person()//构造函数
{
}
}
构造函数的细节:
当一个类中没有定义构造函数时,系统会默认给该类加上一个空参数的构造函数。
当类中定义了构造函数后,默认的构造函数就没有了。
构造函数与一般函数的不同:
写法上不同:构造函数名必须与类名相同;而一般函数名可以任意。
运行上不同:构造函数在对象已建立就运行,给对象初始化。而一般函数只有再调用时才会运行,是给对象添加具备的功能
运行次数;一个对象建立,构造函数只运行一次;而一般方法可以被该对象多次调用。
什么时候定义构造函数?
分析事物时,当该事物该事物具备了一些特性或行为,那么将这些内容定义在构造函数中。
8.构造代码块
格式:
{
构造代码块内容
}
构造代码块中定义的是不同对象共性的初始化内容;构造代码块也是给对象初始化,对象一建立就运行并且优先于构造函数执行。
构造代码块与构造函数的区别:构造代码块是给所有的对象初始化;构造函数是给对应的对象初始化。
9.this关键字
this看上去是用于区分局部变量和成员变量同名的情况。
this代表的是它所在函数所属对象的引用(那个对象在调用this所在函数,this就代表哪个对象)。
this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这是用this来表示这个对象;但凡本类功能内部使用了本类对象,都用this表示。
this语句:用于构造函数之间相互进行互相调用。
class Person
{
private String
name;
private
static int age;
Person(Stringname)
{
this(age);
this.name=name;
}
Person(int age)
{
this.age=age;
}
}
注意:应为初始化要先执行所以,this语句只能定义在构造函数的第一行。
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
----------------------
1.什么是对象?
例如:人开门 那哪些是对象? 运用名次提炼法 人 门 都是对象
/*人
{
开门(门)
{
门.开();
}
}
门
{
开(){操作门轴等。}
}
*/
面向对象的特征:继承、封装、多态
2.类与对象的关系
类:对现实生活中事物的的描述。
对象:就是这类事物,就是现实存在的个体。
映射到java中描述类就是class定义的类,对象就是对应java在对内存中用new创建的实体。
3.类的定义
定义类就是在描述事物,就是定义事物的属性和行为,属性和行为共同称为类中的成员(成员变量和成员方法)
属性就是对应类中的变量,行为就是对应类中的函数(方法)。
4.成员变量和局部变量
作用范围:成员变量作用于整个类中;局部变量作用于函数或者语句中。
在内存中的位置:成员变量在堆内存中;局部变量存在栈内存中。
class Car
{
String color="
灰色";
int
number =4;
public
void run()
{
System.out.println(" ");
}
}
public
class Demo {
public
static void main(String[] args) {
Car car=new Car();//car
是一个类类型变量,它指向对象
}
}
5.匿名对象
匿名对象的使用方式一:当对象的方法只调用一次时,可以用匿名对象来完成,可以简化代码。
匿名对象的使用方式二:可以将匿名对象作为实际参数进行传递。
class Car
{
String color="
灰色";
int
number =4;
public
void run()
{
System.out.println(" ");
}
}
public
class Demo {
public
static void main(String[] args) {
new Car().run();//匿名对象调用run方法
}
}
6.private关键字
private关键字是权限修饰符,也是封装的一中表现形式,用于修饰类中的成员;private修饰的成员只在本类中有效。
class Person
{
private String
name;
public
void setName(String name)
{
}
public String getName()
{
return
name;
}
}
将name私有后类以外即使建立了对象也不能直接访问。但是外部还需要用到name,就需要在Person类中提供对应的访问name的方式。之所以对外提供访问方式,是因为可以在访问时加入逻辑判断语句,对访问的数据进行操作,提高代码的健壮性。
7.构造函数
构造函数可以用于给对象初始化。
class Person
{
Person()//构造函数
{
}
}
构造函数的细节:
当一个类中没有定义构造函数时,系统会默认给该类加上一个空参数的构造函数。
当类中定义了构造函数后,默认的构造函数就没有了。
构造函数与一般函数的不同:
写法上不同:构造函数名必须与类名相同;而一般函数名可以任意。
运行上不同:构造函数在对象已建立就运行,给对象初始化。而一般函数只有再调用时才会运行,是给对象添加具备的功能
运行次数;一个对象建立,构造函数只运行一次;而一般方法可以被该对象多次调用。
什么时候定义构造函数?
分析事物时,当该事物该事物具备了一些特性或行为,那么将这些内容定义在构造函数中。
8.构造代码块
格式:
{
构造代码块内容
}
构造代码块中定义的是不同对象共性的初始化内容;构造代码块也是给对象初始化,对象一建立就运行并且优先于构造函数执行。
构造代码块与构造函数的区别:构造代码块是给所有的对象初始化;构造函数是给对应的对象初始化。
9.this关键字
this看上去是用于区分局部变量和成员变量同名的情况。
this代表的是它所在函数所属对象的引用(那个对象在调用this所在函数,this就代表哪个对象)。
this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这是用this来表示这个对象;但凡本类功能内部使用了本类对象,都用this表示。
this语句:用于构造函数之间相互进行互相调用。
class Person
{
private String
name;
private
static int age;
Person(Stringname)
{
this(age);
this.name=name;
}
Person(int age)
{
this.age=age;
}
}
注意:应为初始化要先执行所以,this语句只能定义在构造函数的第一行。
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
相关文章推荐
- 黑马程序员————java基础---------面向对象(二)
- 黑马程序员_java基础3-面向对象(二)多态、异常、包
- 黑马程序员——Java基础:面向对象一些概念的区分(一)
- 黑马程序员 java 基础 毕向东 面向对象
- 黑马程序员——Java基础日记——面向对象
- 黑马程序员 java 基础 毕向东 面向对象 集合框架 Map HashTable HashMap TreeMap
- 黑马程序员——Java基础---面向对象总结
- 黑马程序员-----java基础(面向对象基础)
- 黑马程序员学习log第四篇基础知识:JAVA的面向对象之多线程总结
- 黑马程序员-----Java基础----面向对象(二)
- 黑马程序员 java 基础 毕向东 面向对象 集合框架 工具类 Collections and Arrays
- 黑马程序员--Java基础--面向对象之三大特性
- 黑马程序员——java基础--面向对象基础
- 黑马程序员_java面向对象基础学习笔记
- 黑马程序员——Java基础---面向对象及其一些代码内部结构分析
- 黑马程序员 java 基础 毕向东 面向对象 多态
- 黑马程序员_java编程基础06面向对象
- 黑马程序员 java 基础 毕向东 面向对象 集合框架 List Set
- 黑马程序员学习log第六篇基础知识:JAVA的面向对象之IO总结
- 黑马程序员——Java重点基础之面向对象思想