前言
本讲主要初步了解面向对象,介绍了类的组成部分,并且通过Person类来讲解了类的属性和方法,因为Java是面向对象开发的,所以在项目中会创建很多类和对象,所以这一讲是十分重要的。我们也认识了方法的定义和调用,后续也会写很多方法进行实战。
一、面向对象和面向过程
都是一种开发思想,面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。具体例子通俗来讲就是,比如人把大象装进冰箱。
面向过程的话,主要是关注每一步动作
面向对象的话,主要是关注每一个对象,指挥这个人去做就行,具体怎么做是这个人的事
这样一看,似乎面向过程比较简单,但是面向过程的关心每一个工作的过程和细节,面向对象,我没把程序看成现实中的具体对象,想要做什么直接跟对象说就行,变得更加具体了。
二、Java类和对象
在Java面向对象中,对象指的就是类,面向对象有三大特征(封装、继承、多态),后续我们会一一讲解,对象(类)的组成部分包括:
属 性:对应类中的成员变量
行 为:对应类中的成员方法
1.类的定义
创建一个类的语法如下:
比如一个人的类:
代码语言:javascript复制/**
* 定义人这个类
* 一个人会有名字,年龄,性别,吃饭,学习,上厕所等等。那么可以划分属性和行为:
* 属性:名字,年龄,性别
* 行为:吃饭,学习,上厕所
* 所以,这样我们就可以完成一个类的编写了
*/
public class Person {
private String name;
private String sex;
private int age;
private void eat (){
System.out.println("吃米饭");
}
private void study (){
System.out.println("读书");
}
private void wc (){
System.out.println("上厕所");
}
}
2.对象的创建和使用
创建对象语法: 类名 对象名 = new 类名(); 使用“对象名.对象成员”的方式访问对象成员(包括属性和方法)
比如上面的 Person这个类,我们可以这样创建和调用:
代码语言:javascript复制public class MainDemo {
public static void main(String[] args) {
// 创建Person类,对象名为person
Person person = new Person();
// 设置person对象的相关属性
person.name = "小明";
person.sex = "男";
person.age = 18;
// 调用person对象对应的行为
person.eat();
}
}
三、Java类的属性
1.属性的语法格式
修饰符 数据类型 属性名 = 初始化值
比如:
代码语言:javascript复制public String name = "小明"
说明:
- 修饰符,常用的权限修饰符有:private、缺省、protected、public
- 数据类型,任何基本数据类型(如int、Boolean) 或 任何引用数据类型。
- 属性名。属于标识符,符合命名规则和规范即可。
2.属性的修饰符
主要有四种修饰符
一般来说,定义属性都是用私有的,并且姓名年龄是不想给人知道的,得认识我才能知道。
四、Java类的方法
方法是类或对象行为特征的抽象,用来完成某个功能操作,比如Person类的eat、study。在某些语言中也称为函数或过程。Java里的方法不能独立存在,所有的方法必须定义在类里。
1.方法的声明格式
修饰符 返回值类型 方法名(参数类型 形参1, 参数类型 形参2, ….){ 方法体程序代码 return 返回值; }
比如,定义一个人吃饭:
代码语言:javascript复制 public void eat (String thing){
System.out.println("吃" thing);
}
如果有返回值的话:
代码语言:javascript复制 public String eat (String thing){
System.out.println("吃" thing);
return "吃饱了";
}
返回值类型说明:
- 没有返回值:void
- 有返回值,声明出返回值的类型。与方法体中“return 返回值”搭配使用,返回值与返回类型一致
方法的调用:
方法通过方法名被调用,且只有被调用才会执行,上面也是提到过了:“对象名.对象成员”
方法参数说明:
方法参数里面的变量是局部变量,只能在方法内部使用。
2.方法的分类
根据有无返回值,有无方法参数,可以分为四种:
我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表