面向过程和面向对象
面向过程:强调的是过程和步骤,思考的是“我该如何做”,所有的事情都是自己亲力亲为
面向对象:强调的是对象,思考的是“谁来帮我做”,其中的谁就是对象,面向对象思想就是一个创建对象,使用对象完成功能的一个思想
面向对象思想的特点:
(1)更符合人们的思维方式(懒人思想)
(2)将复杂的事情简单化
(3)从任务的执行者变成指挥者
类与对象
在Java语言中用类来描述现实中的事物
现实中的事物 类
属性 成员变量
行为 成员方法
举例:
学生事物 Student类
属性 成员变量
姓名 String name;
年龄 int age;
身高 double high;
体重 double weight;
... ...
行为 成员方法
吃饭 eat(){}
睡觉 sleep(){}
学习 study(){}
... ...
类:是一些属性和行为的集合,它是对象的抽象描述
对象:它是类的具体表现形式
简单理解,类是模板,对象是根据这个模板生成的具体内容
类的使用
创建对象
格式:
类名 对象名 = new 类名();
举例:
Student s = new Student();
Scanner sc = new Scanner(System.in);
使用
成员变量
取值
对象名.成员变量;
1. //String name = s.name;
2. // System.out.println(s.name);
赋值
对象名.成员变量 = 值;
s.name = "向问天";
成员方法
对象名.成员方法名();
s.study();
成员变量和局部变量的区别
在类中位置不同
在内存中的位置
生命周期不同
初始值
作用域不同
private关键字
私有的意思,它是一个权限修饰符,只能在本类中访问
private可以修饰成员变量和成员方法
权限修饰符:public>protected>默认>private
以后成员变量一上来必须都用private修饰,修饰完之后就不能通过对象名.的方式访问成员变量了
那么怎么办呢?这时就必须提供一对getXxx()方法和setXxx()方法
比如:成员变量age:
getAge()
setAge(int a)
getXxx():参数列表为空,有返回值
setXxx():有参数列表,无返回值
面向对象的三大特征
封装
继承
多态
封装
封装就是隐藏实现细节,或者隐藏成员变量,对外提供公共的访问方式
封装的体现
private修饰成员变量
方法
好处:
(1)提高数据的安全性
(2)提高了代码的复用性
this
关键字,代表当前对象的引用,谁来调用方法,在方法中的this就代表谁
this的作用:
(1)当局部变量和成员变量同名时,用this.的方式代表这是一个成员变量
(2)在本类中调用当前对象的成员变量和成员方法
(3)通过this()可以调用本类中其他构造方法
构造方法
作用:
1,创建对象
2,给对象的数据进行初始化
普通方法:
修饰符 返回值类型 方法名(参数列表){
方法体;
return 值;
}
构造方法:
修饰符 方法名(参数列表){
方法体;
}
修饰符:public
方法名:和类名相同,大小写也要一致
参数列表:可以通过参数列表给构造方法传递值
注意:
(1)类名和方法名相同,大小写也要一致
(2)没有返回值类型,连void也不能写
(3)构造方法虽然没有返回值,但是也是可以有return;语句的,只是这种语句常常可以省略
(4)如果没有手动给出任何的构造方法,系统会有一个默认的构造方法
public Student(){
}
如果手动给出了构造方法,系统就再也不会提供默认的构造方法
推荐:给出两个构造,一个是空参构造,另一个是给所有成员变量赋值的构造
(5)构造方法可以重载(无参构造和有参构造)
调用构造方法
通过new关键字调用
类名 对象名 = new 构造方法名();
标准的类
成员变量
* private修饰
构造方法
* 空参构造
* 有参构造: 给所有成员变量赋值的构造方法
getters&setters方法
类名作为参数和返回值
类名作为方法的参数,传递的实参实际上是该类的对象
类名作为方法的返回值类型,实际上返回的是该类的对象