返回顶部
首页 > 资讯 > 后端开发 > JAVA >〔005〕Java 基础之面向对象
  • 380
分享到

〔005〕Java 基础之面向对象

java开发语言经验分享极限编程重载面向对象 2023-12-22 18:12:08 380人浏览 独家记忆
摘要

✨ 目录 ▷ 面向对象▷ 注意事项▷ this关键字▷ 构造器▷ 重载构造方法▷ 实体类▷ 案例:英雄搜索 ▷ 面向对象 对象: 是一种特殊的数据结构对象: 使用类 new 出来的,有了类就可以创建对象,例

面向对象

  • 对象: 是一种特殊的数据结构
  • 对象: 使用类 new 出来的,有了类就可以创建对象,例 Random r = new Random(),其中 r 就是一个对象
  • 格式: public class 类名 { 变量和一些类方法 }
  • 面向对象编程,更加符合人类的思维习惯,编程也会更直观
  • 其实万物皆对象,如果想操作学生数据,就去找学生对象;如果想操作随机数,就去找随机数对象,例 r.nextInt()
  • 每种对象可以实现不同功能,这样就显得代码会更加的清晰和直观
  • 比如在游戏中,生成 npc 需要用 npc 对象去处理;生成武器,就去用武器的对象去处理
// 新建类,Npc.javapackage tiny.geeker;public class Npc {    String name; // 生成npc的名字    double blood; // 给npc加血量    public void printName() {        System.out.println("创建的NPC是:" + name);    }    public void printBlood() {        System.out.println("创建的NPC是:" + name + ",它的血量为:" + blood);    }}// 调用类package tiny.geeker;public class Test {    public static void main(String[] args) {        Npc npc = new Npc();        npc.name = "德玛西亚";        npc.blood = 999999;        npc.printName();        npc.printBlood();    }}

初识类

▷ 注意事项

  • 第一: 类名建议使用英文且首字母大写,满足驼峰模式且要有意义,这样别人一眼就知道这个类大概的作用是什么,比如上面的 Npc
  • 第二: 类中定义的变量称为成员变量或者叫对象的属性,比如上面的 nameblood;类中定义的方法称为成员方法也叫对象的行为,比如上面的 printNameprintBlood
  • 第三: 一个类文件中,可以写多个class类,但是只能用一个 public 修饰
  • 第四: 类成员变量本身存在默认值,一般不需要赋初始值
  • 第五: 对象和对象之间的数据不会影响,但是多个变量指向同一个对象时就会相会影响
  • 第六: 如果某个对象没有一个变量引用它,那么该对象就会成为垃圾对象
package tiny.geeker;public class Test {    public static void main(String[] args) {        Npc npc = new Npc();        // 类成员变量本身存在默认值,一般不需要赋初始值        System.out.println(npc.name);        System.out.println(npc.blood);        // 对象和对象之间的数据不会影响        Npc npc1 = new Npc();        npc1.name = "德玛西亚";        npc1.printName();        Npc npc2 = new Npc();        npc2.name = "飞兔小哥";        npc2.printName();        // 多个变量指向同一个对象时就会相会影响        Npc npc3 = new Npc();        Npc npc4 = npc3;        npc3.name = "德玛西亚";        npc3.printName();        npc4.name = "飞兔小哥";        npc3.printName();        // 如果某个对象没有一个变量引用它,那么该对象就会成为垃圾对象        Npc npc5 = new Npc();        npc5 = null;        npc5.printBlood();    }}

注意事项

▷ this关键字

  • this: 其实是一个变量,在方法中指向当前的对象
  • 可以看到在类中打印的 this 和在调用时打印的类名,都指向了同一个地址,所以可以知道 this 就是指向了类的本身
  • 因此在类中,可以通过 this 给类中的变量赋值以及调用类本身中的方法

this关键字
使用this

▷ 构造器

  • 构造器: 当使用 new 实例化一个类时,构造器就会被调用,经常可以给类做一些初始化的操作
  • 构造器: 分为 无参构造器有参构造器
  • 格式: public class Npc { public Npc() { ... } } 构造方法其实是一个跟类同名的方法,且没有返回值类型
package tiny.geeker;public class Npc {    public Npc() {        System.out.println("我是构造方法");    }}

构造方法

▷ 重载构造方法

  • 在前面方法的重载中,知道当方法名字一样,参数不一样的时候就叫方法的重载,那么构造器的重载也是同样的,但是也叫 有参构造器

重载构造方法

▷ 实体类

  • 这是一个特殊的类,仅仅知识用来保存数据,可以用它来创建对象,保存某个事物的数据
  • 成员的变量必须私有,使用 private,不对外暴露变量,而是通过 getset方法去操作变量,并且必须有 无参数构造器
  • 实体类主要是为了让数据和数据的业务处理相互分离
package tiny.geeker;public class Npc {    private String name;    private double blood;    public Npc() {    }    public Npc(String name, double blood) {        this.name = name;        this.blood = blood;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public double getBlood() {        return blood;    }    public void setBlood(double blood) {        this.blood = blood;    }}

实体类

▷ 案例:英雄搜索

  • 现在我们创建 Hero 类,并且设置多个英雄,并且可以通过英雄的id进行检索
  • 需要定义创建英雄的 Hero 类和操作 Hero 的类,创建类负责保存英雄的数据,操作类负责进行英雄检索
package tiny.geeker;public class HeroAction {    private Hero[] heros;    public HeroAction(Hero[] heros) {        this.heros = heros;    }    public void printAllHeros() {        System.out.println("-----所有的英雄信息如下-----");        for (int i = 0; i < this.heros.length; i++) {            Hero h = heros[i];            System.out.println("id:" + h.getId() + " 名称:" + h.getName() + " 血量:" + h.getBlood());        }    }    public void getHeroById(int id) {        System.out.println("-----检索的英雄信息如下-----");        for (int i = 0; i < this.heros.length; i++) {            Hero h = heros[i];            if(h.getId() == id) {                System.out.println("id:" + h.getId() + " 名称:" + h.getName() + " 血量:" + h.getBlood());                return;            }        }        System.out.println("没有该英雄信息");    }}

英雄类

来源地址:https://blog.csdn.net/weixin_41635750/article/details/134415706

--结束END--

本文标题: 〔005〕Java 基础之面向对象

本文链接: https://lsjlt.com/news/551474.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 〔005〕Java 基础之面向对象
    ✨ 目录 ▷ 面向对象▷ 注意事项▷ this关键字▷ 构造器▷ 重载构造方法▷ 实体类▷ 案例:英雄搜索 ▷ 面向对象 对象: 是一种特殊的数据结构对象: 使用类 new 出来的,有了类就可以创建对象,例...
    99+
    2023-12-22
    java 开发语言 经验分享 极限编程 重载 面向对象
  • Python基础之面向对象基础
    面向对象编程(Object-Oriented Programming,简称OOP)是一种编程思想,它将程序中的数据和操作封装成对象,...
    99+
    2023-09-23
    Python
  • Java基础之从HelloWorld到面向对象
    目录1、 "Hello World!"2、编译与运行3、变量4、数组5、表达式5.1 数学表达式5.2关系表达式5.3 布林表达式5.4 位运算6、控制结构6.1 选择 (if)6....
    99+
    2024-04-02
  • Java面向对象基础知识之枚举
    目录一、枚举的定义二、枚举的声明三、枚举的转换四、枚举的方法五、标志枚举(二进制枚举)总结一、枚举的定义 枚举是一组命名整型常量。枚举类型是使用enum关键字声明的。 C# 枚举是值...
    99+
    2024-04-02
  • Java面向对象基础详解
    目录一、前言什么是对象?什么是类?类和对象的关系?类的定义 ?怎么创建对象?格式:创建对象的作用?Phone类下: PhoneDemo下:二、封装封装的好处?Student...
    99+
    2024-04-02
  • Python全栈之面向对象基础
    目录1. 面向对象oop了解2. 对象的相关操作小提示:3. 类的相关操作4. 类对象的删除操作小提示:5. 小练习小提示:答案:总结1. 面向对象oop了解 # ### oop...
    99+
    2024-04-02
  • Java面向对象基础教学(三)
    目录1.包是什么:2.Java面向对象程序设计三大重要特征:(1)封装:(2)继承extends:(3)多态3.instanceof 运算符 总结1.包是什么: 包相当于文...
    99+
    2024-04-02
  • Java面向对象基础教学(一)
    目录1.如何定义类2.如何定义属性3.如何定义普通方法4.如何创建对象5.如何定义构造方法6.什么是可变参数,怎么用?总结1.如何定义类 语法: 访问修饰符 class 类名...
    99+
    2024-04-02
  • Java面向对象基础教学(二)
    目录1.使用访问修饰符: 2.static关键字:3.this关键字 总结1.使用访问修饰符:  ...
    99+
    2024-04-02
  • 【Java基础篇 | 面向对象】—— 继承
    个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 本专栏旨在分享学习Java...
    99+
    2023-10-11
    java 开发语言 面向对象
  • Python面向对象基础
    NOTE:重要强调:    Python的作用域和命名空间(1)命名空间 是从命名到对象的映射    ①内置命名空间    ②全局命名空间:模块    ③本地命名空间:模块中的函数和类(2)作用域   是一个 Python 程序可以直接访...
    99+
    2023-01-30
    面向对象 基础 Python
  • 面向对象基础篇
    面向对象的基本格式 1 # ###### 定义类 ###### 2 class 类名: 3 def 方法名(self,name): 4 print(name) 5 return 1...
    99+
    2023-01-31
    面向对象 基础
  • XML,面向对象基础
    什么是XML  XML与JSON的对比 XML文档格式 使用XML模块解析   一,什么是XML ''' XML 全称可扩展标记语言 <tag></tag> 双标签 <tag/> 单标签 没有文本 一...
    99+
    2023-01-31
    面向对象 基础 XML
  • Java面向对象基础知识之委托和lambda
    委托定义类型,类型指定特定方法签名。可将满足此签名的方法(静态或实例)分配给该类型的变量,然后(使用适当参数)直接调用该方法,或将其作为参数本身传递给另一方法再进行调用。以下示例演示...
    99+
    2024-04-02
  • Java面向对象基础知识之抽象类和接口
    抽象类(abstract): 抽象类不能创建实例,它只能作为父类被继承。抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象。从多个具有相同特征的类中抽象出一个抽象类,以这个抽...
    99+
    2024-04-02
  • Java基础详解之面向对象的那些事儿
    目录一、面向对象的理解二、三大特性2.1 继承(extends):2.2 封装(private):2.3 多态:三、自动装箱与自动拆箱3.1 自动装箱3.2 自动拆箱四、小结一、面向...
    99+
    2024-04-02
  • Java面向对象基础知识之数组和链表
    数组的优点: 随机访问性强 查找速度快 数组要求是一块连续的内存空间来存储,这就要求在物理上这一片空间是连续的,每个元素都有指定的索引in...
    99+
    2024-04-02
  • Python基础之面向对象进阶详解
    目录面向对象三大特征介绍继承语法格式查看类的继承层次结构object根类dir()查看对象属性str()方法的重写多重继承MRO()super()获得父类定义多态特殊方法和重载运算符...
    99+
    2024-04-02
  • Python面向对象之面向对象基本概念
    面向过程和面向对象概念 过程和函数:过程类似于函数,只能执行,但是没有返回结果;函数不仅能执行,还能返回结果。 面向过程和面向对象 基本概念 面向过程-怎么做 把完成某一个需求的所有步骤从头到尾逐步实现; 根据开发需求,将某些功能独立的...
    99+
    2023-01-31
    面向对象 基本概念 Python
  • python基础:面向对象详解
    目录1.私有方法2.私有属性3.类部调用私有属性和私有方法  4.子类不能继承父类私有属性和方法  5.修改私有属性的值  ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作