1.面向过程:将事情分成多个步骤,然后按照顺序一步一步完成。解决简单的问题。
面向对象:将事情的参与实体找出来,然后让对应的实体去做。解决复杂大型的问题。
面向对象和面向过程它们之间是相辅相成。
“我要吃龙虾”
面向过程:买龙虾-》回家洗龙虾-》烹饪龙虾-》自己吃龙虾
面向对象:委托一个人买龙虾-》委托另一个人洗龙虾-》委托一个人烹饪龙虾-》自己吃龙虾
开培训机构:
面向过程:老板自己招生-》咨询-》收费-》上课-》就业。
面向对象:让招生部的老师去招生-》让咨询老师去咨询-》让财务收费-》让讲师去上课-》让就业老师去负责学生就业。(老板负责数钱,监督各部门做事)
2.Java是一种纯面向对象的语言。面向对象的语言有三大特征:封装,继承,多态。
3.对象:用来描述客观事物的实体。(可以用具体的数据来描述)
类:由一组相同属性和方法的对象组成的集合。
类是对象的抽象也是对象的类型,对象是类的一个具体实例(代表)。
属性:静态特征。
方法:动态特征。
4.类: Java最基本的单位是类。
类的语法:
访问修饰符 class 类名{
访问修饰符 数据类型 变量名;
访问修饰符 返回值类型 方法名(参数列数){
方法体;
}
}
注:类中的属性可以有0个到多个。类中的方法也可以有0个到多个。
5.对象:
创建对象的语法:类名 对象名=new 类名();
调用属性的语法: 对象名.属性名;
调用方法的语法:
a.在同一个类中调用方法:方法名();
b.在不同类中:对象名.方法名();
6.this:指代当前对象。(谁调用就指代谁)。
this可以调用成员属性和方法。
7.封装:隐藏内部细节,提供对外的访问方式。保证了数据的安全性。
(1)对功能的封装(实际上就是方法);
(2)对数据的封装:私有化属性,给属性公有的读取和写入值的方法供外界用。
eg:/**
* 将年龄属性私有化
*/
private int age;
/**
* 读取age属性的方法
* @return int
*/
public int getAge() {
return age;
}
/**
* 给age属性写入值的方法
* @return int
*/
public void setAge(int age) {
if(age>=0) {
this.age = age;
}else {
this.age=0;
System.out.println("你输入的年龄不合法,重置为0");
}
}
8.构造方法:本身也是一种方法;但是他没方法返回值;方法与类名相同。
作用:构造方法就是用来New 对象;初始化对象属性。
(1)构造方法自己不定义,系统会自动给每一个类分配一个默认无参数空构造方法。
如果自己在类定义了构造方法,系统就不会给这个类分配方法。
(为了编程习惯用法,一般只给类声明了构造方法,就一定要给类声明一个无参构造。)
(2)构造方法是在New对象时自动调用。
(3)构造方法之间的相互调用,只能用this(参数列表);用this调用构造方法时,this(参数列表);只能写在构造方法的第一句。
9.变量:在同个作用域中变量不可以同名。
在同一个类中,如果成员变量和局部变量同名,局部变量的优先级更高。(就近原则)
成员变量:(1)在类中直接声明的变量就叫成员变量;
(2)作用域:在整个类中。
(3)生命周期:在创建对象到对象回收时。
(4)成员变量不给初值时,系统会默认分配初值。
(5)在内存中的位置不同
局部变量:(1)在方法中声明的变量就局部变量;
(2)作用域:在声明变量所在的大括号的范围内。
(3)生命周期:在声明的大括号执行到结束时。
(4)局部变量不给初值时,系统不会默认分配初值。
(5)在内存中的位置不同
10.用面向对象思维做题的步骤:
(1)找出题目中的类
(2)找出类的属性(只找与解决问题有关的属性)
(3)找出类的方法。