文章目录
面向对象(1)
一.面向过程和面向对象的设计思想
-
**面向过程:**procedure oriented programming 缩写 POP
Ø 分析出解决问题所需要的步骤,然后把步骤一步一步实现。
Ø 面向过程直接关注流程。
-
**面向对象:**object oriented programming 缩写 OOP面向对象的编程语言
Ø 以分类的方式进行思考和解决问题。
Ø 面向对象先对整体关系作出分类,然后根据不同的类深入细节的处理。
Ø 面向对象的思想符合人类的认知习惯。
-
面向对象无法取代面向过程,他们是相辅相成的。面向对象关注于从宏观
上把握事物之间的关系,在具体到如何实现某个细节时,仍然采用面向过
程的思维方式。面向对象如果离开了面向过程,就无法实现真正的落地,
成为无源之水。
二.java类
1.什么是类:
-
类是一个模板,它描述一类事物的属性和行为的集合.
类是表示一个客观世界某类群体的一些基本特征抽象
-
类就是对同一类事物(具体存在的) 共有的属性(名词)行为(动词)的定义(抽象)
类是一个模板 根据某个类 来创建这个类的具体实例(对象)
三.Java类的定义
-
如以下代码就具体定义了一个类:
/* 发现类 汽车类: [访问权限修饰符] [修饰符] class 类名{ } */ 注:[]为可以有也可以没有 public class Car { /* 成员变量 类的属性(名词) [修饰符] 类型 变量名 = [值] */ String name; String color; float price; /* 成员方法 类的行为(动词) 访问权限修饰符 返回值类/void 方法名(参数类型 参数名){ [return 值] } */ //行驶 public void run(){ System.out.println("汽车行驶"); } public void stop(){ System.out.println("汽车刹车"); } }
-
类中需要注意的事项:
- 类的声明格式: [访问权限修饰符] [修饰符] class Car{ }
- 访问修饰符有两种public,无(默认)
- 修饰符:final,abstract
- 关键字class用来定义一个类
- Java类名的命名规范:
- 类名首字母大写,见名知意,驼峰表示
- 类中成员变量的声明定义方式(代码中有)
- 类中方法的定义方式(同上)
- 类的声明格式: [访问权限修饰符] [修饰符] class Car{ }
三.java对象
-
什么是对象:
-
对象是类的实例是概念的具体存在以类为模板,在内存中创建一个真实存在的实例.
万事万物(现实存在)皆为对象(可以使用的)对象的创建和使用
对象:指的是一个具体存在的
-
四.对象的创建和使用
-
创建:Car x1 = new Car();(前提已经创建了Car这个类(class))
- =:把内存中对象储存的地址赋值给左边的变量
- x1:并不代表对象本身只是将对象的地址引用了所以这种类型称为引用类型
-
使用:使用x1变量访问对象中的成员变量和成员方法.
注意:同一类的每个对象有不同的成员变量存储空间,同一类的每个对象共享该类的方法
-
代码:
public static void main(String[] args) { /* 使用new关键字来创建对象 new Car 创建Car类的对象 Car() 使用类的构造方法初始化类 Car bm 声明一个与构造方法名称相同的类型的变量 = 把在内存中对象存储的地址 赋值给左边的 bm变量 */ Car bm = new Car(); bm.name = "宝马"; bm.color = "黑色"; bm.price=400000f; bm.run(); bm.stop(); Car bc = new Car(); bc.name = "奔驰"; bc.color = "白色"; bc.price = 500000f; bc.run(); bc.stop(); }
五.变量分类
1.从数据类型分:
- 基本类型变量byte short int long float dobule char boolean
- 引用类型分类:String,类,数组接口
- 引用类型只是把创建的对象的地址引用了并不是对象本身
2.按照位置划分:
-
成员变量:成员变量是定义在类中,方法体之外的变量。
成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。
在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。
成员变量在创建对象的时候会从类中复制一份到对象中。
成员变量可以被类中方法、构造方法和特定类的语句块访问。
成员变量的作用范围为整个类体
成员变量生命周期: 变量什么时候生(对象创建),什么时候死(对象被回收时)
-
局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。
局部变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。
局部变量在使用前必须初始化赋值不像成员变量不赋值的时候会有系统默认赋值)
六.方法分类
1.成员方法:(非static修饰的) 被对象调用. 完成对象的功能(行为) 定义在类中
-
语法格式:修饰符 返回值类型 方法名 ( 参数列表) {
方法体语句;
[return 返回值] }
2.构造方法:
-
用来初始化创建的对象
-
方法名与类名相同,没有返回值,不需要void修饰
-
若没有定义构造方法则系统会默认提供一个空的构造方法。若是类中定义了构造方法则系统不在提供这时除了有参的构造方法建议在定义一个空的构造方法
-
例如代码:
public class Car{ String name; double price; //构造函数 public Car(){ //空的构造方法 } public Car(String name,double price){ //带参的构造方法 name=name; price=price; } //..等等还能有很多构造方法 参数不同,类型不同 }
七.方法的重载
- 方法的重载:一个类中具有相同的名字但参数不同的多个方法
- 参数不同:(符合下列三种的任意一种都可以)
- 数量不同
- 类型不同
- 顺序不同
- 重载方法的调用:调用时会根据不同的参数表选择对应的方法
- 参数不同:(符合下列三种的任意一种都可以)
注意:方法重载跟方法的返回值类型没有任何关系
各位看官留个赞再走可好呀~~~~~~~~