黑马程序员技术交流社区
标题:
面向对象整理笔记
[打印本页]
作者:
PeterPang
时间:
2016-1-14 23:37
标题:
面向对象整理笔记
1.面向过程和面向对象
什么是面向过程?
比如说,我们想要完成一个大型的项目,那想完成这个项目需要由几个功能共同实现,那在这里面我们就是以函数(具有特定功能的一段独立的小程序)为基础,
用函数来完成各项操作,那强调就是函数,这就是面向过程
什么是面向对象?
比如说,我们想要完成一个大型的项目,那想完成这个项目需要由几个功能共同实现,那我们换了一种方法,把这几个函数都扔到一个对象中,
那这里面我们就是以对象为基础,用对象来完成各项操作,那强调就是对象,这就是面向对象
面向对象是以面向过程为基础的,是基于面向过程的
面向对象的思想特点是什么(我们为什么要学习面向对象)?
它是一种更符合我们人类思考习惯的思想
它可以将复杂的事情简单化
它可以将我们程序员从执行者变成了指挥者
2.类和对象
什么是类?
官方:事物的属性和行为的集合,是一个抽象的概念
我们想要知道Java中的类是什么,就要先知道我们现实生活中的类是什么,因为现实生活中的类和Java中的类似是一样一样的,那现实生活中的类是什么?
通过查看百度百科,许多相似或者相同事物的综合,具有共同特征的事物所形成的种类,比如说,我们称为人“类”,因为我们有共同的相似的特征,
比如说,我们都有姓名,年龄,血型,星座等等,这些是我们的属性,我们都有吃喝拉撒睡的能力,这些是我们的行为,Java中的类就是这个类,只不过需要我们用代码体现出来
什么是属性?
事物的外在特征
什么是行为?
事物拥有的功能,能力
现实生活中叫属性,那Java中叫成员变量
现实生活中叫行为,那Java中叫成员函数(成员方法)
什么是对象?
官方:对象类的具体存在,体现
比如说你,我,他,我们都是活生生的个体,实体,实体就是对象
如何编写一个类?
定义类用关键字class
class Person {
//属性,成员变量
String name;
int age;
String xingzuo;
//行为,成员方法
public void eat() {}
public void drink() {}
public void la() {}
public void sa() {}
public void sleep() {}
}
如何使用一个类?
想使用一个类,要创建该类的对象,然后再使用对象
创建对象的格式是什么样子的?
类名 变量名(对象名) = new 类名();
Person p = new Person();
使用对象的格式是什么样子的?
(对象名)变量名.属性(成员变量)
(对象名)变量名.行为(成员方法)
p.name = "小花";
p.age = 18
p.xingzuo = "白羊座";
System.out.println(p.name);
System.out.println(p.age);
System.out.println(p.xingzuo);
p.eat();
p.drink();
p.la();
p.sa();
p.sleep();
3.成员变量和局部变量
什么是成员变量?
定义在类中,方法外的变量就是成员变量
什么是局部变量?
定义在方法中,或者方法的声明上
成员变量和局部变量区别?
定义位置不同
成员变量:定义在类中,方法外
局部变量:定义在方法中,或者方法声明上
初始化值不同
成员变量:有默认的初始化值
局部变量:没有默认的初始化值,如果我们想要去使用它,一定要先给个初始化值,然后再去使用
内存位置不同
成员变量:存在于堆内存中,生命周期是随着对象的存在而存在,随着对象的消失而消失
局部变量:存在于栈内存中,声明周期是随着方法的存在而存在,随着方法的消失而消失
4.匿名对象
什么是匿名对象?
没有名字的对象就是匿名对象
匿名对象的格式?
new 类名();
new Person();
匿名对象的特点?
一次性,只能使用一次,在创建对象的时候使用一次,之后就没法再使用
new Person().name;
new Person().eat();
我们在什么时候可以使用匿名对象?
当我们只想使用一次该对象的成员变量或者成员方法的时候,就可以选择使用匿名对象
匿名对象可以作为实际参数进行传递
5.封装
什么是封装?
隐藏对象的属性和实现细节,仅对外提供公共的访问方式
怎么隐藏对象的属性?
在属性的前面加上一个关键字,private
怎么提供公共的访问方式?
在有private修饰的成员变量的类中,写两个方法,在这两个方法中可以调用本类中的私有的成员变量,
然后我们在测试类中创建该类对象,用对象调用这两个公共的方法,即可间接的实现调用私有成员变量
6.private关键字
什么是private关键字?
它是一个修饰符,代表私有的意思,它可以修饰成员变量和成员方法
private关键字的特点?
被pirvate关键字修饰的成员变量和成员方法只能在本类中被访问,不可以再其他类中访问
注:private仅仅是封装的一种体现,类和方法也是一种封装
加上private关键字之后的标准代码怎么写?
class Person {
private String name;
private int age;
public void setName(String n) {
name = n;
}
public String getName() {
return name;
}
public void setAge(int a) {
age = a;
}
public int getAge() {
return age;
}
public void eat() {}
public void drink() {}
}
7.this关键字
什么是this关键字?
代表对象的引用,说白了,哪个对象调用this所在的方法,this就代表哪个对象
this关键字的作用?
它解决了局部变量隐藏了成员变量的问题
可以调用本类中的其他的构造方法(以后学)
加上this关键字之后的标准代码怎么写?
class Person {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return this.age;
}
public void eat() {}
public void drink() {}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2