1.面向对象(理解)
什么是面向过程?
C语言
比如说,我们想要完成某个大型的项目,但是呢,想要完成这个项目,需要3个功能组合在一起才能实现的。我们要做的就是努力把这个三个功能做好,
在结合,就可以实现这个项目了,在这个过程中,我们重点关注的是每一个功能是否能够做好。面向过程可以理解为面向函数(方法),我们重点关注的就是方法。
什么是面向对象?
Java语言
比如说,我们想要完成某个大型的项目,但是呢,想要完成这个项目,需要3个功能组合在一起才能实现的。我们换了一种思想,我们不去直接做方法了,
我们直接去找了一个具备该三个功能的对象,我们只需要把对象弄好,大项目也做好了,我们重点关注的是对象了,而不是方法了。
面向过程和面向对象的关系?
面向对象是基于面向过程的,就是说以面向过程为基础之上建立的
面向对象的好处是什么(我们为什么要学习面向对象呢)?
它是一种更符合我们人类思考习惯的思想
它可以将复杂的事情简单化
它可以将我们程序员从执行者变成了指挥者
2.类和对象
什么是类?
官方:类是某些事物的属性和行为的集合,是一个抽象的概念。
我们想要知道Java中的类是什么,那我们就要先知道我们现实生活中类是什么呢?通过百度百科查看,我们知道了,类是许多相似或相同事物的综合,
具有共同特征的事物所形成的种类,即为类,如果我们还不懂,你可以自己问自己一个问题,你为什么是“人类”,因为我们都有相似的外貌(鼻子,眼睛,耳朵,嘴巴等等),
我们的一些动作都是差不多的,我们都有吃,喝,拉,撒,睡,dbj等功能。Java中的类其实就是对我们现实生活中类的描述
什么是属性?
就是类的外在特征,在java中叫做成员变量。
比如说人类,外在特征,鼻子,眼睛,耳朵,嘴巴,都有姓名,年龄,性别,星座,血型。
什么是行为?
行为一个动词,就是类具备的一些功能,比如说人类,功能,吃,喝,拉,撒,睡,跑,跳等等。在java中叫做成员方法
什么是对象?
官方:对象是类的具体的存在,体现
比如说以人类为例,那对象就是具体的某一个人,你,我,他都是对象
怎么写一个类?
在写一个类之前,我们先要认真的观察该类有哪些外在特征和功能
比如我们用人类来举例:
分析:人类
外在特征:姓名,年龄,性别,星座,血型,身高,籍贯
功能:吃,喝,拉,撒,睡
定义类要用到关键字class
public class Person {
//属性,成员变量,事物的外在特征
String name;
int age;
String sex;
String xingzuo;
//功能,成员方法
public void eat() {
System.out.println("吃肉");
}
public void drink() {
System.out.println("喝水");
}
}
怎么创建一个对象?
类名 对象名 = new 类名();
Person ppp = new Person();
怎么使用一个对象?
给对象的属性赋值,调用对象的功能
给属性赋值:对象名.属性 = 值
System.out.println(对象名.属性);
ppp.name = "张三";
System.out.println(ppp.name);
ppp.age = 18;
System.out.println(ppp.age);
调用对象的功能:对象名.方法名();
ppp.eat();
ppp.drink();
3.成员变量和局部变量的区别
什么是成员变量?
成员变量就是属性,定义在类中,方法外的变量
什么是局部变量?
定义在方法内,或者方法声明上(形式参数)
区别?
定义位置:
成员变量定义在类中,方法外
局部变量定义在方法内,或者方法的声明上
内存位置:
成员变量存储在堆内存中的对象中
局部变量存储在栈内存中的方法中
生命周期:
成员变量是随着对象的存在而存在,随着对象的消失而消失
局部变量是随着方法的存在而存在,随着方法的消失而消失
默认初始化值:
成员变量是有默认初始化值
局部变量是没有默认初始化的值
4.private关键字
什么是private关键字?
它是一个修饰符,代表私有的意思,它可以修饰成员变量和成员方法
private关键字的特点?
被private关键字修饰的成员变量和成员方法只能在本类中使用,不能在其他类中使用
5.封装
封装是面向对象三大特征(封装,继承,多态)之一
什么是封装呢?
隐藏对象的属性和实现细节,仅对外提供公共的访问方式
怎么隐藏对象的属性?
在属性前面加上private关键字,就可以达到隐藏的效果
怎么提供公共的访问方式?
写两个方法,一个是setXXX(),一个是getXXX()
封装的利弊?
弊:写起来麻烦(其实也不麻烦,因为我们可以使用快捷键快速生成)
利:提高了代码的安全性
开发原则:
所有的属性都要被private修饰,相应的,你要针对每一个属性,提供setXXX和getXXX方法
6.this关键字
什么是this关键字?
代表对象的引用,哪个对象调用this所在的方法,this就代表哪个对象
this关键字的作用是什么?
解决了同名的局部变量隐藏了成员变量的问题
7.构造方法
什么是构造方法?
方法的名字和类名相同,格式和普通的方法格式不一样的特殊的方法
构造方法的格式?
public 类名(形式参数) {
xxxooo;
return;
}
构造方法的作用?
用来创建对象
给对象的属性进行默认初始化
我们在使用构造方法的时候需要哪些问题?
我们没有自己写构造方法的时候,系统会默认带一个无参数的构造方法
一旦我们手动写上构造方法之后,系统带的就消失了,建议平时手动写上无参构造和全参构造
构造方法也是方法,既然是方法就满足方法的重载 |
|