Java面向对象介绍

Java面向对象介绍

1. 面向对象思想的介绍

1.1 前提

在了解面向对象之前,我们需要先了解一下面向过程过程编程,在实现一个具体的功能时,我们需要先了解这个功能要做什么,然后动手编写代码一步一步的把功能实现。这就是面向过程的思想。

1.2 概述

在面向过程编程的基础上,我们进行优化,封装时根据不同的功能,把具有相似功能的代码进行封装,在需要用到时,直接调用这些封装好的代码。

面向对象的思想强调的是让对象做事情。

1.3 面向对象思想的特点

l 是一种更符合人们的思考习惯的思想。

l 可以将复杂的事情简单化。

l 程序开发人员从执行的角色转换成了指挥的角色。

l Java编程面向对象编程思想的三大特征,封装、继承和多态。

1.4 面向过程思想和面向对象思想的举例

以做一顿饭举例。

l 面向过程时,需要自己找食谱、买菜、洗菜、炒菜等。

l 面向对象时,找了个女朋友,女朋友就把饭做好了。

2. 类与对象的关系

l 先有类再有对象,进而使用对象调用方法。

l 只有类没有对象时,没有意义。

3. 类的介绍

3.1 类的组成

l 类的属性:也被称为成员变量,为了保护成员变量数据的安全,成员变量的属性一般是私有的。

l 类的方法:也被称为成员方法。一般会包括对成员变量操作的get和set方法,包括无参和全参的构造方法。

3.2 代码示例

public class Cat {

//成员变量

private String name;

private Integer age;

//成员方法

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

//构造方法

//全参构造方法

public Cat(String name, Integer age) {

this.name = name;

this.age = age;

}

//无参构造方法

public Cat() {

}

}

4. Java面向对象的三大特征之封装

4.1 概述

使用{}将代码封装起来,起个名字,以后再使用这个代码 只调用名字。

4.2 封装中方法的关键字

l Public:公开成员变量或者成员方法。

l Private:将成员变量设置成私有,不让外部直接访问,但是可以通过公有的get或者set方法间接访问。那么问题来了,在使用get或者set方法访问成员变量时,如何解决数据的安全性问题呢?可以在get或者set方法中添加对数据安全性的校验。

4.3 封装的意义

l 隐藏了类的具体实现。

l 在实现具体的业务需求时,操作更加简单。

l 使用private修饰成员变量,提高了对象中数据的安全性。

5. This关键字

5.1 this关键字的概念

this关键字代表的是对本类对象的引用,指向的是本类已经创建的对象。

5.2 this关键字存在的意义

this关键字是为了解决局部变量与成员变量名字冲突的一个标记。

5.3 代码示例

//全参构造方法

public Cat(String name, Integer age) {

this.name = name;

this.age = age;

}

6. 类中的构造方法

6.1 构造方法存在的意义

在用类创建对象的时候,给成员变量赋值。

6.2 构造方法的分类

l 无参构造方法:

在类中没有写全参构造方法的时候,java在生成class文件时,会自动生成一个无参构造方法;

在类中写了全参的构造方法时,写程序的人员必须手动生成一个无参的构造方法,在使用无参构造方法创建对象时,对象中的成员变量是没有数据的,需要调用类的set方法为成员变量赋值。

l 全参构造方法:

使用全参构造方法创建对象的时候,对象中的成员变量是有数据的。

6.3 代码示例

类的代码见以上cat类的代码。

测试类的代码如下:

public class ClassDemo01 {

public static void main(String[] args) {

//1.使用无参构造方法创建对象

Cat cat1 = new Cat();

cat1.setName("tom");

cat1.setAge(18);

//2.使用全参构造方法创建对象

Cat cat2 = new Cat("danny",19);

}

}

7. 成员变量与局部变量

成员变量与局部变量的区别

猜你喜欢

转载自blog.csdn.net/qq_34236718/article/details/80633932