精华内容
下载资源
问答
  • 我们可以把类的类型为两种:第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用。第二种,我们自己创建的类,按照类的定义标准,可以在类中包含多个...

    引用数据类型(类)

    引用数据类型分类

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

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

    第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用。

    第二种,我们自己创建的类,按照类的定义标准,可以在类中包含多个方法与属性,来供我们使用。

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

    自定义数据类型概述

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

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

    类的定义与使用

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

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

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

    类的定义格式

    创建java文件,与类名相同

    public class 类名{

    数据类型 属性名称1;

    数据类型 属性名称2;

    }

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

    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.属性名 就可以对属性进行操作

    与引用类型数组类似,引用类型的自定义类型的变量,直接变量时,结果为对象地址值,这里可以通过内存图简单解释。

    mn3mvad0e1i.jpg

    以上就是详解java自定义类的详细内容,更多关于java自定义类的资料请关注聚米学院其它相关文章!

    展开全文
  • 于是我就自定义一个边的类,里面包含了权值,关联端点1,端点2,和图的表示字母。发现我想创建11条边,Bian[] = new Bian[11]时; 然后调用Bian[0].v一直报空指针异常,还百度了,发现有些小伙伴和我遇到一样问题...

    今天在学图论的最小生成树,开始一直在想是用邻接矩阵还是关联矩阵来表示图,但是发现这样都会有好多空间浪费。于是我就自定义一个边的类,里面包含了权值,关联的端点1,端点2,和图的表示字母。发现我想创建11条边,Bian[] = new Bian[11]时; 然后调用Bian[0].v一直报空指针异常,还百度了,发现有些小伙伴和我遇到一样的问题。于是仔细想了想,发现在java中,数组存放的是这个类型的对象,万物皆对象。我定义Bian[] 时里面应该要存放Bian[]类型先。例如以下程序

    import java.util.Scanner;

    class Bian{

    int v; //边的权值

    int guanlian[] = new int[2];//每条边都是关联2个点

    char xuhao;

    }

    public class Test {

    public static void main(String[] args) {

    System.out.println("请输入这个图有几条边:"); //用关联矩阵表示图

    Scanner scn = new Scanner(System.in);

    int n = scn.nextInt();

    Bian bian[] = new Bian[n]; //初始化了这么多条边,则开始输入

    for(int i=0;i

    bian[i] = new Bian(); //要先创建这个对象放在这个数组中才能使用

    bian[i].v = scn.nextInt();

    bian[i].guanlian[0] = scn.nextInt();

    bian[i].guanlian[1] = scn.nextInt();

    bian[i].xuhao = (char) ('a'+i);

    }

    }

    }

    以后大家要记住咯

    展开全文
  • 于是我就自定义一个边的类,里面包含了权值,关联端点1,端点2,和图的表示字母。发现我想创建11条边,Bian[] = new Bian[11]时; 然后调用Bian[0].v一直报空指针异常,还百度了,发现有些小伙伴和我遇到一样问题...

    今天在学图论的最小生成树,开始一直在想是用邻接矩阵还是关联矩阵来表示图,但是发现这样都会有好多空间浪费。于是我就自定义一个边的类,里面包含了权值,关联的端点1,端点2,和图的表示字母。发现我想创建11条边,Bian[] = new Bian[11]时; 然后调用Bian[0].v一直报空指针异常,还百度了,发现有些小伙伴和我遇到一样的问题。于是仔细想了想,发现在java中,数组存放的是这个类型的对象,万物皆对象。我定义Bian[] 时里面应该要存放Bian[]类型先。例如以下程序

    import java.util.Scanner;

    class Bian{

    int v; //边的权值

    int guanlian[] = new int[2];//每条边都是关联2个点

    char xuhao;

    }

    public class Test {

    public static void main(String[] args) {

    System.out.println("请输入这个图有几条边:");  //用关联矩阵表示图

    Scanner scn = new Scanner(System.in);

    int n = scn.nextInt();

    Bian bian[] = new Bian[n];  //初始化了这么多条边,则开始输入

    for(int i=0;i

    bian[i] = new Bian();   //要先创建这个对象放在这个数组中才能使用

    bian[i].v = scn.nextInt();

    bian[i].guanlian[0] = scn.nextInt();

    bian[i].guanlian[1] = scn.nextInt();

    bian[i].xuhao = (char) (‘a‘+i);

    }

    }

    }

    以后大家要记住咯

    展开全文
  • 我在做POJ 1054时,希望对自己定义一个Plant进行二分查找,但是查找结果一直不成功(未找到)。我认为是没有实现判断相等接口中对应方法,请问诸位该怎么实现,或者还是别原因,烦请各位不吝赐教,...
  • 于是我就自定义一个边的类,里面包含了权值,关联端点1,端点2,和图的表示字母。发现我想创建11条边,Bian[] = new Bian[11]时; 然后调用Bian[0].v一直报空指针异常,还百度了,发现有些小伙伴和我遇到一样问题...

    今天在学图论的最小生成树,开始一直在想是用邻接矩阵还是关联矩阵来表示图,但是发现这样都会有好多空间浪费。于是我就自定义一个边的类,里面包含了权值,关联的端点1,端点2,和图的表示字母。发现我想创建11条边,Bian[] = new Bian[11]时; 然后调用Bian[0].v一直报空指针异常,还百度了,发现有些小伙伴和我遇到一样的问题。于是仔细想了想,发现在java中,数组存放的是这个类型的对象,万物皆对象。我定义Bian[] 时里面应该要存放Bian[]类型先。例如以下程序

    import java.util.Scanner;
    
    class Bian{
        int v; //边的权值
        int guanlian[] = new int[2];//每条边都是关联2个点
        char xuhao;
    }
    
    public class Test {
        public static void main(String[] args) {
            System.out.println("请输入这个图有几条边:");  //用关联矩阵表示图
            Scanner scn = new Scanner(System.in);
            int n = scn.nextInt();
            Bian bian[] = new Bian[n];  //初始化了这么多条边,则开始输入
            for(int i=0;i<n;i++){
                bian[i] = new Bian();   //要先创建这个对象放在这个数组中才能使用
                bian[i].v = scn.nextInt();
                bian[i].guanlian[0] = scn.nextInt();
                bian[i].guanlian[1] = scn.nextInt();
                bian[i].xuhao = (char) ('a'+i);
            }
        }
    }
    

      

     

    以后大家要记住咯

    转载于:https://www.cnblogs.com/zzlback/p/8470495.html

    展开全文
  • java入门一共三季,看完了以后感觉自己对java的认识还是有增强,主要还是是靠自己写吧,老师讲东西是一方面,更重要还得是自己融会贯通。这次扑克牌游戏,个人感觉写方法有很多,我只是在参考了别人方法...
  • Java数组自定义比较器

    千次阅读 2015-12-12 20:43:37
    equals()用于比较两个数组是否相等(deepEquals()用于多维数组)、fill()用于填充数据、sort()用于对数组排序、binarySearch()用于在已经排序的数组中查找元素、toString()产生数组的String表示、hashCode()产生数组的...
  • 我们定义一个名为ArrayStack的类来表示一个基于数组实现的栈,该栈存储的是范型T的对象 栈的数组实现可以通过以下4个假设来设计: 1.该数组是一个对象引用...(该类的创造来自于《Java软件结构与数据结构第四版》教...
  • Java数据结构之数组

    2017-12-19 23:17:01
    数组作为Java最基本的数据结构在处理数据时具有广泛的应用,接下来将封装数组... * 自定义的数组封装 */ public class MyArray { private long[] arr; //表示有效数据的长度 private int elements; public M
  • Object介绍Object是所有数组、枚举父类,当我们定义一个未使用extends关键字去显示指定父类时,则表示默认继承了Object父类。Object常用方法boolean equals(Object obj):判断两个对象是否为同一...
  • Object介绍Object是所有数组、枚举父类,当我们定义一个未使用extends关键字去显示指定父类时,则表示默认继承了Object父类。Object常用方法boolean equals(Object obj):判断两个对象是否为同一...
  • 本文实例为大家分享了Java实现寻找迷宫出路具体代码,供大家参考,具体内容如下项目名称寻找迷宫出路项目描述给定一个自定义迷宫,0表示能通过,1表示不能通过。通过程序找出正确迷宫出路,并将正确路线改为2...
  • Java数据结构数组

    2018-08-02 13:07:08
    自定义数组类MyOrderArray实现数组的增删改查 public class MyOrderArray { private long [] arr; private int elements; //表示数组的有效数据个数 public MyOrderArray(){ arr=new long[50]; //设置长度...
  • Java 自定义HashSet

    2019-06-05 02:43:47
    前言: HashSet是一种数据结构为基本操作(add, remove, contains and size)提供恒定时间性能,假设哈希函数在桶之间正确地分散元素。...1.定义一个表示链表节点的类class Node<T> { T data; Node nex...
  • Java 自定义HashSet实现

    千次阅读 2019-03-13 16:39:49
    前言: HashSet是一种数据结构为基本操作(add,remove,containsandsize)提供恒定时间性能,假设哈希函数在桶之间正确地分散元素。...1.定义一个表示链表节点的类 class Node&lt;T&gt; { T data; N...
  • Java对象数组按照其属性排序方法

    千次阅读 2018-11-14 23:17:04
    问题描述: 开发时我们希望用一个类表示某种物品, 用其域来描述物品的特性,...要排序就要有比较的方法, 因为是自定义的类, 系统不知道怎么做两个自定义类的比较, 所以我们要自己在类内写两个类的比较的方法,也就是...
  • 首先说一下ByteBuffer 这个抽象,一般在服务器和客户端之间通信他们之间通信格式都是固定,都有消息头和消息体,也就是我们常说的自定义通信协议(都是基于TCP/IP层) 每个消息头和消息体都有固定属性(也...
  • 使用java语言封装简单的数组类. package ch01; public class MyArray { private long[] arr; //表示有效数据的长度 private int elements; public MyArray() { arr = new long[50]; } public MyArray...
  • Arrays 数组工具

    2020-05-30 14:10:19
    java.util.Arrays是一个与数组相关工具,用来实现数组常见操作,比如排序和搜索等。其所有方法均为静态方法,调用起来非常简单。 操作数组的方法 返回指定数组内容字符串表示形式。 public static String ...
  •   Object是所有数组、枚举父类,当我们定义一个未使用extends关键字去显示指定父类时,则表示默认继承了Object父类。 Object常用方法 boolean equals(Object obj):判断两个对象是否为同一个对象...
  • 表示任何有能力产生数据数据源对象或者是有能力接收数据接收端对象,它屏蔽了实际I/O设备中处理数据细节。IO流是实现输入输出基础,它可以很方便地实现数据输入输出操作,即读写操作。本片要点介绍流...
  • 自定义注解 Java

    2020-06-11 17:56:39
    这里写自定义目录标题1.自定义注解介绍1.1 @Target 表示该...1.4 @Documented 指示将此注解包含在 javadoc 中1.5 @Repeatable 想在一处同时使用多个相同注解时,需要新建数组注解,并在原注解上使用@Repeatabl
  • ​ 能够独立完成某种功能代码块 可以重复使用 每次使用相互独立 存在于结构中 自定义方法: ​ 返回值: ​ 方法名: ​ ():固定结构 ​ {}:方法体 写功能语句 注:void 表示没有返回值 void sum(){ } 修饰...
  • Java工具:一次性打印输出自定义的所有变量 利用java的可变参数可一次性把方法中或自定义的变量一次性传递到方法参数中, 对于数组类型参数通过object[i].getClass().isArray()判断是否为数组,然后...
  • "java.lang.String"表示对象类型 String.split(“xxx”);写法要注意: 自动导包: 模板: 仍旧困惑问题: idea和命令行生成.class文件大小不同; 如下图,路径不懂,今天最大问题就出在了...
  • 首先说一下ByteBuffer 这个抽象,一般在服务器和客户端之间通信他们之间通信格式都是固定,都有消息头和消息体,也就是我们常说的自定义通信协议(都是基于TCP/IP层) 每个消息头和消息体都有固定属性(也...
  • Java实现文件目录列表的自定义排序

    千次阅读 2013-07-03 15:40:45
    Java列出某个文件目录文件列表是很容易实现,只用调用Filelist()方法即可。  String[] list()   返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中文件和目录。 ...
  • 数据结构之数组

    2018-03-21 14:49:13
    Java中已经为我们封装好了ArrayList来描述各种操作,下面将自定义类分装并描述数组的操作。 数组操作之增删改查 package Array; public class MyArray { private long[] arr; //表示有效数据长度 ...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 143
精华内容 57
关键字:

java自定义类的数组表示

java 订阅