Java 7 -- 类与对象(1)(面向对象与面向过程的区别;对象、方法)
程序员文章站
2022-05-28 13:35:30
...
文章目录
面向对象
OOP(Object Oriented Programming)主要特点有:继承、多态、抽象和封装4个特征
面向对象与面向过程的区别
- 最明显的区别是,面向对象是按照要完成的功能来实现的,而面向过程是按照解决问题的步骤来实现的
- 面向对象是按照程序中的功能来进行划分的
- 面向过程是按照问题的解决思路来划分的,是一步一步来解决问题的
- 面向过程更看重的是完成问题的过程
- 面向对象更看重的是功能,通过各种功能模块的组合来完成问题
类
类是 Java 的核心,所有的 Java 程序都是基于类的
类的定义和对象的创建
对象 即类的实例
class <类的名称>
{
// 类的成员变量
// 类的方法(即成员函数)
}
实例化:
<类的名称> <实例名> new <类名>();
如下所示:
class bike
{
String color = "violet"; // 成员变量
void printBike() // 类方法
{
System.out.println("class method");
}
public static void main(String[] args)
{
bike b = new bike(); // 创建一个类的对象实例
System.out.println(b.color); // 引用成员变量
b.getMes(); // 调用类方法
}
}
使用现有的类
定义的类可以放在一个包(目录)下面(包详解看这里),也可以不在一个包下面。将类分别放在不同的包下,是为了避免类的重名。类又分为已有类和自定义类,它们之间的使用也是有区别的。
-
在同一目录下使用类,调用时可以直接引用该类
-
在不同目录下使用类,需要使用 import 语句(包括 Java 自己的已有类,但不需要 import
lang
包)
类设计的技巧
首先要明确功能啊···所以如果定义了和这个类不相关的成员变量和方法将不是一个良好的设计
成员变量
成员变量的初始化
通过 new 关键字创建一个对象之后,如果对象存在成员变量,系统就会为其自动分配一个初始值,如下表所示:
类型 | 默认值 |
---|---|
Byte | 0 |
Char | ‘\u0000’ |
Boolean | false |
Short | 0 |
Int | 0 |
Long | 0L |
Float | 0F |
Double | 0.0D |
对象引用 | null |
局部变量
局部变量是在方法体里面创建的,只在方法体内部可见,系统不会为其赋初始值。
局部变量与成员变量的区别
- 局部变量描述的是这个方法体内的属性,而成员变量描述的是这个对象里的属性
- 成员变量可以被 public、protected、default、private、static、final 修饰符修饰
- 局部变量可以被 final 修饰符修饰,但不能被其余几个修饰
- 成员变量是在堆(heap)里面创建的,而局部变量是在栈(stack)里面创建的
- 成员变量有系统默认值,而局部变量没有,必须手动赋值
方法
方法的创建和参数
<方法修饰符> <方法的返回类型> <方法名>(方法参数)
{
// 方法体
}
修饰符为 public 类型的,可以省略
- 方法的返回类型有很多种,主要分为如下几类:
- 无返回值时为 void 类型
- 系统定义的基本类型
- 返回值可以为 null,但必须是对象类型,基本类型不能返回 null
- 返回值为基本类型时,只要能自动转换就可以返回
- 方法的参数也有多种形式:
- 方法的参数可以是基本数据类型,也可以是对象引用类型
- 每个参数都有完整的 声明该变量的形式
- 方法的参数可以有一个,也可以有多个
- Java 程序的入口 main 就为一个方法,参数为
String[] args
,是一个特殊的方法
方法的调用
方法是定义在对象里的,只能通过其对象引用(实例)来调用。通过对象引用名称,加上 “.” ,再加上方法名
方法参数的传递
- 当传递类型为基本类型时,传递的是该类型的值
- 当传递的参数为对象引用类型时,也是利用传值的方式进行的
下一篇: AI又来搞事情了 这次它要让全美会计师都