面向对象1

本章内容涉及到的是在java语言中的一种编码思维,以及许多零零碎碎的基础概念知识,想要学好编程,那么这些琐碎的细枝末节定能决定我们编码能力的高度。

面向过程 和 面向对象
面向过程和面向对象都是程序设计的一种风格(思想)

 面向对象的程序设计

面向过程的程序设计思想 简称POP

● 关注的焦点是过程:过程就是操作数据的步骤。

如果某个过程的实现代码重复出现,那么就可以把这个过程抽取为一个函数。

这样就可以大大简化冗余代码,便于维护。

● 典型的语言:C语言

● 代码结构:以函数为组织单位。

● 是一种“执行者思维” ,适合解决简单问题。

面向过程:

  是以函数(一个一个的功能)为结构进行代码组织,

  解决问题时,分析实现所需的步骤,然后一步一步实现即可

  代表语言:C语言

 相对于面向对象,扩展能力差、后期维护难度较大

面向对象:

 面向对象的程序设计思想,简称OOP

 是以类为单位进行组织,类:一类问题/分类 String,Math,Arrays,Scanner……

比如开车动作简单,面向过程的思想就可以解决

造车就比较复杂了,适合使用面向对象思想,要进行分类

面向过程适合简单的问题

面向对象适合复杂的问题,先宏观的分类设计,具体某一个步骤落地时

又需要面向过程,它们时相辅相成的

面向对象就像是将现实的事物抽象出来,注意抽象这个词是重点啊,把现实生活的事物以及关系,抽象成类,通过继承,实现,组合的方式把万事万物都给容纳了。实现了对现实世界的抽象和数学建模。这是一次飞跃性的进步。

面向过程是具体化的,流程化的,解决一个问题,你需要一步一步的分析,一步一步的实现。

面向对象是模型化的,你只需抽象出一个类,这是一个封闭的盒子,在这里你拥有数据也拥有解决问题的方法。需要什么功能直接使用就可以了,不必去一步一步的实现,至于这个功能是如何实现的,管我们什么事?我们会用就可以了。

类:具有相同特征的事物的抽象描述,是抽象的、概念上的定义。

    同一类事物的抽象描述(定义) 概念,模板

对象:实际存在的该类事物的每个个体,是具体的,因而也被成为实例

     该类事物具体存在的一个一个的各=个体,是真实存在的,也称为实例

 万事万物 (大千世界中具体存在的东西),皆为对象。

第一步 发现类
从现实事物中抽象出一个类

格式(正常)

  Public class 修饰类 Car  类名 {

/*

     定义属性 成员变量  直接在类{   }中定义的内容 ,称为类的成员

*/

   String name;

   String color;

   Int price;

   //……

   /*

      定义方法 成员方法   

   */

  Public void run (){

    System.out.println(“汽车行驶”);

}

  Public void stop(){

    System.ouat.println(”汽车停止”);

}

}

类名规范: 首字母大写 驼峰规则

New Car();     new关键字用来创建对象,以Car类为模板,在内存中开辟一块独立的空间

              用来存储对象信息

     Car() 构造方法,每个类中默认都有一个,方法名字与类名相同的

     Car (类型) car(变量名)  声明一个Car类型的变量

     = 把右边的对象地址赋给左边的变量 ,用变量在后面的程序中表示内存中的对象

类就是一个文件,用来静态的定义某一类事物拥有什么属性和功能

计算机内存:是运行时存储数据

Public class  修饰类  Car

类名:类名首字母大写

 变量按照类型:

   基本数据类型  :8种

   引用数据类型  :用类作为类型,String,数组

 变量按照位置分:
   成员变量(在类中定义)

       可以使用基本数据类型,也可以使用引用数据类型

       Java中的变量在使用前都必须对其进行初始化

       成员变量可以不对其进行初始化,系统会默认对其进行初始化

      成员变量可以在成员方法,构造方法,代码块中使用

局部变量(在方法中定义)

       局部变量不会自动对其进行初始化

       方法的参数也是局部变量

定义方法 成员方法

  方法是类中具有的某种功能

类中的成员变量和方法都必须通过创建出来的对象调用

构造方法
Car();  类的构造方法,类中没有定义时,会默认有一个无参的构造方法

 构造方法的名字于类名相同

 定义:名字与类名相同,且没有返回值,且不需要使用void修饰

 特点:

   类中没有定义时,会默认有一个无参的构造方法

   在无参的构造方法种为成员变量赋一个初始值,我们还可以定义有参的构造方法,

通过有参的构造方法为成员变量进行初始化赋值操作

一旦类种定义了有参的构造方法,那么默认的无参的构造方法便会失效

如果需要 ,需要显示的定义无参构造方法

作用: 用来为新创建的对象中的成员变量进行初始化

方法重载
在一个类中,有多个方法名相同,但参数个数不同的方法,称为方法重载

如何区分名称相同的多个方法:

   通过参数的个数、类型、顺序来进行区分

方法重载意义:;做同一件事,但是可以传入不同的参数;

注意:跟方法的返回值类型没有任何关系

值传递
 Java种进行方法调用种传递参数时,参数传递有两种

● 值传递:(形参数类型是基本数据类型):

方法调用时,实际参数把它的值传递给对应 的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同 的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。

● 引用传递:

(形参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参 数是对象,这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的 操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法 执行中形式参数的改变将会影响实际参数。

  • 33
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值