本章内容涉及到的是在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种进行方法调用种传递参数时,参数传递有两种
● 值传递:(形参数类型是基本数据类型):
方法调用时,实际参数把它的值传递给对应 的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同 的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。
● 引用传递:
(形参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参 数是对象,这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的 操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法 执行中形式参数的改变将会影响实际参数。