二、初识面向对象(类),以及面向过程

1、面向对象与面向过程

先简单的理解

面向过程就是注重过程,就像我们之前学的,注重怎么一步一步的去实现,但面向对象,就会把面向过程封装起来,直接得到我们想要的结果。

比如我们之前如果要求一个阶乘,我们会for循环…一系列操作,但面向对象,我们只需要给一个值,然后我们直接得到阶乘结果,至于过程,全被封装起来,直接使用得到我们想要的结果。

再来一个例子,比如我们想要买一瓶水
面向过程:我们需要去超市,…付钱…回家
面向对象:你告诉父母,你想要喝水,然后父母给买回来,至于过程是怎么买的,你不用知道,你只需要提高需求,得到结果。

再来一个代码中的例子:怎么求一个数的次方?
你可能for循环…然后一步一步的实现,你需要注重每一步操作
但你也是以直接调用Math.pow(2,3),直接得到结果,中间的过程你可以不用知道,你只需要提供需求,得到结果

面向过程:我们是过程的参与者,体现的是执行者
面向对象:讲过程封装,考虑的是对象的行为,比如Math.pow(2,3),我们只需要知道他的行为(结果)是什么,相当于指挥者

所以说是万物皆对象,比如人,车子…都有自己的属性和特征;人会呼吸,至于为什么会呼吸,全被封装起来了,你只需要执行,难道每次呼吸还要考虑原理么◕‿-

面向过程

面向过程也是解决问题的一种思想,当我们在解决问题时,会按照预先设定的想法和步骤,一步-步去实现, 而具体的每一步都需要我们去实现和操作。这些步骤相互调用和协作,完成我们的需求。上述描述的每一 个具体步骤我们都是参与者,并且需要面对具体的每一个步骤和过程, 这就是面向过程最直接的体现。通过上面简单的描述发现,面向过程,其实就是面向着具体的每一个步骤和过程, 就是面对具体的每一个功能函数。 这些功能函数相互调用,完成需求。

面向对象

面向对象当不再面对具体的每一个方法时,发现操作也变的简单了很多。而封装具体功能的这类,是我们需要面对的。而基于这个封装了具体功能的类,那怎么使用呢?当面向封装了具体功能类,若要使用这个类,一 般情况下,在Java中需要通过创建这个类的实体来使用。这个实体称之为对象。在开发中,我们是在不断的找封装不同功能的类。基于这些类,创建其对象,使用这些对象完成相应的操作。通过上面的讲解和分析得出:面向对象是基于面向过程,对象是将功能进行了封装。只要找到了具体的类,创建出对象,就可以调用其中的具体功能。面向对象也是用来解决问题的一种思维模式。在以后开发中,先找对象,调用对象中的具体功能。如果真的没有能够完成需求的对象,这时就自己创建对象,并将所需的功能定义到对象中,方便以后使用。

2、类

就是将一些方法封装在一起,便组成了一个类,当然方法不能随便封装在一个类里;

比如一个人的类,里面会封装,呼吸,说话,走路…,但要是把”飞“封装在人的类里似乎就不太合适。把人的说话封装在狗的类里,都不太合适

3、对象与类

还是比如一个人的类,那么人的类名字叫什么呢,跑步,那跑的多快呢?所以需要实例化一个具体的对象才能执行相应的事情。比如我们通过类,实例化一个张三,张三就可以执行人类中的属性。比如张三的姓名,跑步10Km/h…

如果把,张三、李四、王五…这些人的共同属性(静态特征:属性;动态特征:方法)封装起来便构成了一个人的类

比如这个动物类,在实例化之前只是一个抽象的存在,实例化之后,都有共同的属性,共同的属性有各自的特点

面向对象与面向过程 的图像结果

4、类的定义与使用(重点)

格式:
修饰符 class 类名{
属性声明;
方法声明;
}

接下来我们定义一个车的类

public class Car{
    //静态特征【属性】
    String brand;
    int price;
    
    //动态特征
    public void appearance(String ap){
        System.out.println(ap);
    }
    public void setBrand(String br){
        brand = br;
    }
    public String getBrand(){
        return brand;
    }
}

接下来我们实例化一个车

格式:
类名 对象名 = new 类名();
对象名.方法名()

Car myCar = new Car();
myCar.appearance("白色");
mycar.setBrand("大众");
System.out.println(getBrand());

通过这个例子应该有点感觉了,把所有操作封装起来,我们以后使用,只需要调用即可。这个是一个简单的例子,但如果一项操作很复杂比如线性表就是将很多操作封装起来,以后使用直接调用即可,这样面向对象是不是便捷了很多。

这样也理解了类的抽象的概念,对象是具体的。

接下来了解一下几个名词

成员变量:定义在类中的变量

成员方法:定义在类中的方法

局部变量:定义在方法体,或者代码块中的变量(比如在一个大括号中定义一个变量,在大括号外是使用不了的)

静态成员变量:static修饰,类中定义表示改变了是所有对象共用一个值

成员变量局部变量
声明的位置直接定义在类中方法形参或内部、代码块、构造方法中等
修饰符访问修饰符,static、final不能用访问修饰符、不能用static,可以使用final
初始化值有默认值没有默认初始化值,必须赋值才能使用
内存加载的位置空间或静态区域(new出来的)(之前的数组便是在堆中开辟的,所以有初始化值)
//举个例子了解一下这些名词
public class Demo {
    //成员变量
    public int age;
    public static int height;//静态成员变量
    public final int weight=7;//成员常量
}
//成员方法
public void f(){
    //局部变量
    int a;
    
    //public int a;//报错
	//public static int a;//报错
    
    final int b=3;//局部常量
    System.out.println(age);//输出0
    //System.out.println(a);//报错
}

这章概念性的知识点比较啰嗦,主要是了解面向对象和面向过程,接下来主要会用代码举例来讲解知识点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值