dlnb526 发表于 2020-2-22 10:36:24

【Java类与对象】迅腾公司实例探索1(原创)

本帖最后由 dlnb526 于 2020-2-22 10:49 编辑


【JAVA练习题】【索引贴】
https://fishc.com.cn/thread-157183-1-1.html



static/image/hrline/2.gif
最近在做how2j的Java练习,里面类与对象的所有题都通过王者荣耀的例子来解释练习,一方面担心转载后会有侵权的问题,另一方面为了加强自己对类和对象的理解,因此我自己尝试虚拟化一个迅腾公司,来替换JAVA练习题中的内容。

本节涉及内容:
引用,继承,方法重载,构造方法

大家好,我是金主爸爸——迅腾集团的代表,在我的旗下有很多不同的集团分管不同的业务。今天作为金主爸爸的我现身说法来告诉大家一些类和对象的内容。

资料载入中……





引用:
金主爸爸我是一家互联网公司,我掌控着很多的软件。

public class Software {
      
    String name; //产品名称
      
    String version; //产品版本
      
    float profit; //产品盈利
      
    String cate; //产品类型
      
    public static void main(String[] args) {
      //创建一个对象
      new Software();
         
      //使用一个引用来指向这个对象
      Software TT = new Software();
        //一个类可以被多个对象引用
        Software WC = new Software()
         
    }
      }
练习:

如代码,问题:
h4所指向的对象和h2所指向的对象,是否是同一个对象?
public class Software {
      
            String name; //软件名称
        String cate; //软件类型
       
        public static void main(String[] args) {
                Software s1 =new Software();
                 Software s2 =new Software();
         
      Software s3;
      Software s4;
      s3=s1;
      s4=s3;
    }
}
       

**** Hidden Message *****




继承:

其实很久以前就有人抱怨我们的软件并不是那么好用,哎可是产品经理苦思冥想也没什么好办法。

终于有一天,一个叫小甲鱼的帅气员工说{:10_327:} ,我们可以从软件的基础上软硬件结合步入互联网+新时代!
互联网+(Intp)的项目继承了Software的全部属性

如果不用继承的方式:

public class Intp{
    String name; //产品名称
      
    String version; //产品版本
      
    float profit; //产品盈利
      
    String cate; //产品类型

}

现在我们直接继承自Software,并且添加了硬件类型

public class Intp extends Software{
        String Hardware;
        public static void main(String[] args) {
       
        Intp item1 = new Intp();
        Intp.name = homesucu; //这是一个家庭安全的项目
        Intp.version = "1.0.0";
        Intp.profit =12.4;
        Intp.cate = "Security" ;//它的分类就是安防
        Intp.Hardware = "camera" ;//所需要的硬件就是摄像头啦!

练习:
软件可以在不同平台运行,下面设计一个运行在VR平台的软件类(VR_Software)继承自Software 类。
他有一个新的属性:Vr_brandvr品牌

实例化两个Vr软件
名称:沙滩美女
版本:2.1.0
产品类型:game
vr品牌:Vive

名称:vr视频
版本:3.5
产品类型:video
vr品牌:Oculus


**** Hidden Message *****



方法重载

比如我们迅腾就有一个DouMusic视频软件,可以传入User类连麦

所以传入关于软件用户参数可以

public void chatwith();//不连麦
public void chatwith(User u1);
public void chatwith(User u1,User u2);//可以和很多人连麦

方法名是一样的,但是参数类型不一样,所以当开始使用后调用的系统资源多少也就不一样

如果要传入更多的参数就要设计更多的方法,我们可以传入可变数量的参数
public void chatwith(User ...users)

这样当我们要同时和很多人连麦可以传入很多参数

练习:完善DouMusic,为了简单起见,它继承自Software类。他里面肯定会有连麦的方法。
        因此你还需要创建一个User类,你觉得里面应该传入什么参数呢?

**** Hidden Message *****




构造方法

通过一个类创建一个对象,这个过程叫做实例化

实例化是通过调用构造方法(又叫做构造器)实现的

当我们通过关键字new来创建对象时,其实就是调用构造方法。

在我们公司年度总结的时候,发现每次发布软件都要传入好多好多参数,最佳员工小甲鱼觉得可以在实例化的时候把很多参数都传进去{:10_281:}

构造方法定义格式:

修饰符   方法名()

{

}
如果不写构造方法,系统默认会提供一个无参的

public Software(){
}

如果我们构造一个包含名字的构造方法

public Software(String software_name){
      name = software_name;
    }
构造方法也可以重载

public Software(String software_name){
      name = software_name;
    }
public Software(String software_name,float software_profit){
        name = software_name;
        profit = software_profit;
}

构造方法和方法的类似之处在于它们都包含可执行代码,
区别在于,只有当Java类实例化时才执行构造方法。构造方法通常包含类属性初始化代码,从严格意义上说,构造方法并不是方法,因为它不会返回任何值。


static/image/hrline/5.gif

练习:还记得刚才构建的User类吗?
                下面我们来给他鼓捣出三种不同的构造方法

**** Hidden Message *****

zwhe 发表于 2020-6-7 11:17:37

{:10_324:}
页: [1]
查看完整版本: 【Java类与对象】迅腾公司实例探索1(原创)