• java自定义类


      引用数据类型(类)

     引用数据类型分类

    提到引用数据类型(类),其实我们对它并不陌生,之前使用过的Scanner类、Random类。

    我们可以把类的类型为两种:

    •   第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用。
    •   第二种,我们自己创建的类,按照类的定义标准,可以在类中包含多个方法与属性,来供我们使用。

    这里我们主要介绍第二种情况的简单使用。

      自定义数据类型概述

    我们在Java中,将现实生活中的事物抽象成了代码。这时,我们可以使用自定义的数据类型(类)来描述(映射)现实生活中的事物。

    类,它是引用数据类型,与之前学习的所有引用数据类型相同,自定义类也是一种数据类型。只是自定义类型并非Java为我们预先提供好的类型,而是我们自己定义的一种引用数据类型用来描述一个事物。

     类的定义与使用

    java代码映射成现实事物的过程就是定义类的过程。

    我们就拿一部手机进行分析,它能用来做什么呢?它可以打电话,上网,聊微信等,这些就是手机所提供的功能,也就是方法;手机也有它的特征,如颜色、尺寸大小、品牌型号等,这些就是手机的特征,也就是属性。

    目前,我们只关注类中的属性.

    类的定义格式

    创建java文件,与类名相同
    public class 类名{
        数据类型  属性名称1;
        数据类型  属性名称2;
        …
    }
    View Code

    通过类的定义格式,来进行手机类的描述,如下所示

    public class Phone {
        /*
         * 属性
         */
        String brand;// 品牌型号
        String color;// 颜色
        double size; // 尺寸大小
    }

    上述代码,就是创建一个类的的过程,类的名称我们给起名为Phone,类中包含了三个属性(brand品牌型号、color颜色、size尺寸大小)。注意,类中定义的属性没有个数要求。

     类的使用格式

    Phone类定义好后,我们就可以使用这个类了,使用方式和使用引用数据类型Scanner类相似。格式如下:

    导包:我们将所有的类放到同一个文件夹下,可以避免导包。
    创建对象:数据类型  变量名 = new 数据类型();
    调用方法:目前我们定义的自定义类不涉及方法,只是属性(自定义类中的方法部分在面向对象部分讲解)
    访问属性:变量名.属性 (这是当前的方式,后期会采取调用方法的方式替代掉直接访问的方式来完成对属性的访问。)

    当有了Phone数据类型的变量后,我们就可以使用Phone类中的属性了。对属性的访问我们来演示一下,如下所示:

    public class Test {
        public static void main(String[] args) {
            //定义了一个Phone类型的变量p
            Phone p = new Phone();
            /*
             * 通过p,使用Phone中的属性
             */
            //访问p中的brand品牌属性
           p.brand = "苹果X"; 
           //访问p中的color颜色属性
            p.color = "白色"; 
            //访问p中的size尺寸大小属性
            p.size = 6.5; 
    
           System.out.println("手机品牌为" + p.brand );
           System.out.println("手机颜色为" + p.color );
           System.out.println("手机尺寸大小为" + p.size );
        }
    }

     自定义类型注意事项与内存图

    上述代码中,通过类Phone创建出来的变量p,它相当于我们生活中的盒子,里面包含了它能够使用的属性。

    •   通过 p.属性名 就可以对属性进行操作
    •   与引用类型数组类似,引用类型的自定义类型的变量,直接变量时,结果为对象地址值,这里可以通过内存图简单解释。

  • 相关阅读:
    shell-条件测试
    51Nod 1279 扔盘子 (思维+模拟)
    51Nod 1042 数字0-9的数量(数位DP)
    Codeforces 1138B Circus (构造方程+暴力)
    51nod 1133 不重叠的线段 (贪心,序列上的区间问题)
    51nod 1091 线段的重叠(贪心)
    EOJ Monthly 2019.2 E 中位数 (二分+中位数+dag上dp)
    牛客练习赛39 C 流星雨 (概率dp)
    牛客练习赛39 B 选点(dfs序+LIS)
    Educational Codeforces Round 57
  • 原文地址:https://www.cnblogs.com/Young111/p/9991097.html
Copyright © 2020-2023  润新知