一、面向对象的优点
- 易维护:代码模块化,实体被抽象成类,和同一名字空间中具有相同功能的类,我们可以在名字空间中添加一个类而不会影响该名字空间的其他成员。
- 扩充性:如果一个类需要某些功能,可以在这个类中添加功能
- 代码重用:可以通过继承减少部分代码的冗余,使一个类中的代码可以被其他类使用二
二 、类和对象
类:是抽象的概念集合,对具有相同特征的实体进行抽象。
对象:一个真实世界的中的实体
举例:猫,狗等等动物,都具有生命,会呼吸,对它们进行抽象,它们都是动物,动物是类,猫、狗是实体
三、用法
1. 类
语法如下:
class 类名称{ //class是关键字
属性(变量)
行为(方法)
}
举例:定义一个Person类
class Person{
String name;
int age;
public void tell(){
System.out.println("I am" + name + ",年龄是" + age); //System.out.println();功能是输出内容到控制台
}
定义完类之后无法使用,类是抽象的,需要借助实体,也就是对象。
2.对象
语法如下:
(1)格式一:声明并实例化对象
类名称 对象名称 = new 类名称();
(2)格式二:声明对象,后实例化
类名称 对象名称 = null;
对象名称 = new 类名称;
对象属于引用类型,引用类型和基本数据类型的据别是:
基本数据类型在创建时,在栈内存上给其划分一块内存,将数据直接存储在栈上。
引用类型在被创建是,首先要在栈上分配内存给对象引用,也就是对象名称,然后在对内存上给对象划分一块内存,然后栈上的引用指向堆上的对象,栈上的引用存放着对象的地址
举例:声明实例化Person
Person p1 = new Person(); //方法一
Person p2 = null; //方法二
p2 = new Person();
四 、区别
1.类是一个抽象的概念,不存在现实世界
2.对象是类的具体,是一个实实在在存在的东西
3.类是一个静态的概念,本身不携带数据。当没有为类创建任何对象时,类本身不存在于内存空间中。
4.对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。