博客
关于我
Java-面向对象
阅读量:73 次
发布时间:2019-02-25

本文共 1779 字,大约阅读时间需要 5 分钟。

面向对象编程入门

一、面向对象的概念

面向对象编程是一种基于对象的编程范式,与面向过程编程有着本质的区别。面向过程编程(如C语言)关注的是程序的执行流程,而面向对象编程(如Java、C++、Python)则更注重新现实世界中事物的属性与行为。

面向过程 vs 面向对象

  • 面向过程:程序的执行者为主,方法论基于流程图。
  • 面向对象:程序的行为由对象执行,方法论基于类和对象。

面向对象的思维方式更贴近人类的日常交流方式,能够更好地反映实际生活中的事物特性。

二、类与对象

类的定义

类是一个事物的数据类型,是实体属性的集合。一个类具备基本信息和行为特征。

  • 类的基本信息:如工号、姓名、部门等。
  • 类的行为:如打针、护理等具体操作。

对象的概念

对象是根据类创建的具体实例,具备类中的所有属性和行为。例如:

  • :护士类

    • 基本信息:工号、姓名、部门
    • 行为:打针、护理
  • 对象:护士对象

    • 基本信息:89757、马磊、肛肠科
    • 行为:具体的打针动作、护理流程

在代码中,类的属性对应对象的属性,行为对应对象的方法。

三、成员与局部变量

成员变量 vs 局部变量

  • 成员变量

    • 作用范围:整个类
    • 默认值:与数组默认值一致
    • 生命周期:随对象创建而生,随对象释放而死
  • 局部变量

    • 作用范围:仅在方法中使用
    • 默认值:无
    • 生命周期:随方法执行结束而释放

成员方法 vs 局部方法

成员方法可以被类中任何方法调用,而局部方法仅限于当前方法使用。

四、类的定义与对象的创建

类的定义

类的定义格式如下:

public class 类名 {    属性定义;    方法定义;}

例如,定义一个Hero类:

public class Hero {    public String name; // 姓名    public int hp;    // 健康值    public boolean gender; // 性别    public int level; // 等级    public int exp; // 经验值    public void attack() { // 攻击方法    }    public void back() { // 退后方法    }    public void shopping() { // 购物方法    }}

对象的创建

创建对象的语法格式:

数据类型 对象名 = new 数据类型();

例如,创建一个Hero对象:

Hero h = new Hero();

属性与方法的调用

属性的使用方式:

// 赋值:h.name = "亚索";// 获取:int hp = h.hp;// 打印:System.out.println(h.exp);

五、引用数据类型作为方法参数和返回值

引用数据类型的传递与返回

  • 参数传递:传递引用类型时,方法接收到的是实参的地址。
  • 返回值:返回引用类型时,接收变量保存的是返回值的地址。

注意事项

  • 空指针异常:确保引用变量不为null,避免在使用对象的属性或方法时引发异常。
  • 示例:避免不经处理的null指针导致程序崩溃。

六、构造函数

构造函数的特点

  • 函数名:与类名一致。
  • 返回类型:无,不能为void。
  • 隐式构造函数:每个类都有一个默认的无参构造函数。
  • 构造函数重载:通过提供不同参数列表实现多种构造方式。

构造函数的作用

  • 创建对象:实例化类。
  • 初始化属性:为对象属性赋予初始值。

构造函数重载示例

public Employee(String a, int b, String c) {    name = a;    level = b;    report = c;}Employee e = new Employee("张三", 4, "良好");

this关键字

  • 作用:获取当前对象地址,避免属性和方法的混淆。
  • 示例
public Employee(String name, int level, String report) {    System.out.println("this的地址:" + this);    this.name = name;    this.level = level;    this.report = report;}
  • 特殊用途:调用其他构造函数,简化代码。

转载地址:http://qss.baihongyu.com/

你可能感兴趣的文章
Node.js之async_hooks
查看>>
Node.js初体验
查看>>
Node.js升级工具n
查看>>
Node.js卸载超详细步骤(附图文讲解)
查看>>
Node.js卸载超详细步骤(附图文讲解)
查看>>
Node.js基于Express框架搭建一个简单的注册登录Web功能
查看>>
node.js学习之npm 入门 —8.《怎样创建,发布,升级你的npm,node模块》
查看>>
Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
查看>>
Node.js安装及环境配置之Windows篇
查看>>
Node.js安装和入门 - 2行代码让你能够启动一个Server
查看>>
node.js安装方法
查看>>
Node.js官网无法正常访问时安装NodeJS的方法
查看>>
node.js模块、包
查看>>
node.js的express框架用法(一)
查看>>
Node.js的交互式解释器(REPL)
查看>>
Node.js的循环与异步问题
查看>>
Node.js高级编程:用Javascript构建可伸缩应用(1)1.1 介绍和安装-安装Node
查看>>
nodejs + socket.io 同时使用http 和 https
查看>>
NodeJS @kubernetes/client-node连接到kubernetes集群的方法
查看>>
NodeJS API简介
查看>>