跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 工具系统 > 运营工具 > 〔005〕Java 基础之面向对象

〔005〕Java 基础之面向对象

时间:2024-03-25 18:46:17 来源:网络cs 作者:璐璐 栏目:运营工具 阅读:

标签: 对象  基础 

✨ 目录

▷ 面向对象▷ 注意事项▷ this关键字▷ 构造器▷ 重载构造方法▷ 实体类▷ 案例:英雄搜索

▷ 面向对象

对象: 是一种特殊的数据结构对象: 使用类 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://www.kjpai.cn/news/2024-03-25/148569.html,文章来源:网络cs,作者:璐璐,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论