2 u010775468 u010775468 于 2016.05.03 12:08 提问

java中的枚举问题中的变量

新人初学java,在学到枚举的时候遇到了问题,求教各位
枚举中有这样一段定义

public class WeekDay(){
private WeekDay(){}
public final static WeekDay SUN = new WeekDay()
......
}
后面就是这样得一些定义星期的代码
不明白的地方:
1.这里是枚举的问题:为什么创建对象可以在这个类的内部,一般来说,不是一般只有在另一个类里创建这个类的对象算是正确吗?
2. 这里有个new关键字,我的理解是new一般会和类搭配使用,用来分配一个空间来存放这个对象,这样对,吗?
3.我是不是可以把java中的类理解一个数据类型,相当于自己定义的,然后WeekDay SUN 相当于int a这个语句,可以这样理解吗?
在下先谢谢各位了

5个回答

w172087242
w172087242   Ds   Rxr 2016.05.03 13:48
已采纳

1.首先你的类不是枚举类,枚举类的申明关键字是enum,而不是class
2.你的类构造方法是私有的,那么就只有在该类上申明实例,或者在该类的内部类中申明实例,外部和外部反射实例化是不同的。
3.new关键字就是把类实例化,在堆内存中为类实例分配空间,然后就是SUN持有该空间的引用地址。
4.类实例化的时候其初始空间大小需要计算的,每个变量之间拥有位偏移量,而基本类型可以准确计算出需要的内存空间。

u010775468
u010775468 谢谢您
大约 2 年之前 回复
w172087242
w172087242 回复键盘手C: 对的,可以这样理解,如果有帮助,希望选择我的答案。
大约 2 年之前 回复
u010775468
u010775468 谢谢您,关于第二个问题,是不是可以这样理解:对于一个类,他的构造方法如果是private的话,那么他不会被外部的类实例化,只能在他的内部实例化,所以才会有这样的语句出现?
大约 2 年之前 回复
u010775468
u010775468 谢谢您,关于第二个问题,是不是可以这样理解:对于一个类,他的构造方法如果是private的话,那么他不会被外部的类实例化,只能在他的内部实例化,所以才会有这样的语句出现?
大约 2 年之前 回复
theSnai1
theSnai1   2016.05.03 13:02

对于第3条,我个人觉得把类理解为一个类型是正确的,但是WeekDay SUN 和 int a这两个语句是有区别的,WeekDay SUN只是声明了一个引用变量,而没有分配空间,但是int a是即声明了变量也为变量分配了空间。

u010775468
u010775468 Student st = Student();这是实例化一个对象是吧,那么如果只有 Sthdent st = new Student1()(这个student1是Student的子类)是不是相当于把st这个句柄指向student1这个子类,实际操作的也是子类?
大约 2 年之前 回复
u010775468
u010775468 谢谢您。有个问题还想请教下您;
大约 2 年之前 回复
u010775468
u010775468 谢谢您。有个问题还想请教下您;
大约 2 年之前 回复
CSDNXIAON
CSDNXIAON   2016.05.03 12:11

java枚举问题
[poj 1830]开关问题 高斯消元+自由变量枚举
在Lua中使用枚举型变量
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.05.03 12:16

1 首先,枚举类,本质也是类,只是它的实例对象有所限制,就是它定义的几个实例,通常构造函数是私有的,或者不提供构造函数。这样外界类就不能
new 枚举类类型了,只能通过枚举类类名.实例来访问各个实例对象。
2 其次,你给出的这段代码就是枚举类内部public final static WeekDay SUN = new WeekDay(),其实就是定义了一个成员,实例化一个对象。

Angelasan
Angelasan   2016.05.03 14:05

1.枚举类的声明关键字是enum,而不是class,public enum VoEnum {}
2.若类构造方法是私有的,那么就只能在该类上声明实例,或者在该类的内部类中声明实例,外部和外部反射实例化是不同的。
3.new关键字就是把类实例化,在堆内存中为类实例分配空间,然后就是SUN持有该空间的引用地址,并不分配空间。.类实例化的时候其初始空间大小需要计算的,每个变量之间拥有位偏移量,而基本类型可以准确计算出需要的内存空间。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
【Java学习笔记】8:Java枚举和枚举类
枚举可以对类似的相同类型的对象同时进行声明,在程序中调用这些元素时,不会出现混淆或重复。 枚举的定义形式如下: enum 枚举名{枚举值表}; 设有变量a、b、c被说明为上述的weekday,可采用下面三种方式: enum weekday{sun,mon,tue,wed,thu,fri,sat}; enum weekday a,b,c; 或者 enum weekday{sun,mon
Java枚举和注解
30、      用enum代替int常量 枚举类型是指由一组固定的常量组成合法值的类型,例如一年中的季节或一副牌中的花色。在没引入枚举时,一般是声明一组int常量,每个类型成员一个常量: public static final int APPLE_FUJI = 0; public static final int APPLE_PIPPIN = 1; public static final
Java 枚举enum 使用详解
在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。 在java中如何更好的使用这些“数据集”呢?因此枚举便派上了用场,以下代码详细介绍了枚举的用法。 /** * 枚举用法详解 * */ public class TestE
java类型枚举的几种方法
常量定义通常有数据库表、配置文件、JAVA静态常量和枚举类中 1、数据库表方式 create table t_USER ( PK_ID NUMBER(10) not null, SEX VARCHAR2(255) check (SEX in(0,1)), USERNAME VARCHAR2(255) )其中sex字段就限制了字段取值只能是0和1.这里假定0代表男 1
java 枚举——java中枚举的运用和使用场景
转自:http://blog.csdn.net/yehui928186846/article/details/51426415 基本特性: 1,enum关键字  枚举enum是同class,interface同一级别的特性。  我们可以把enum看作一个抽象类,但是它又有它的不同之处,enum不能被继承。 这一点其实在Android源码中就得到了证实: Public a
java 强制转换问题中方法、变量调用问题(多态)
总结: 子类去构建父类,取同名变量的时候是得到的父类的变量,同名方法的时候是得到子类的方法,这是常识,记住就行。 class Partent{    String s = "Patent";    public void get(){      System.out.println( "i am parent");    } } class Child extends
Java 枚举:switch 支持枚举
JDK1.5 才开始有枚举类型,同时可爱的 Java 组织丰富了 switch 语句:支持枚举。 定义一个枚举类 Color public enum Color { RED("red color", 0), GREEN("green color", 1), BLUE("blue color", 2), YELLOW("yellow color", 3);
关于java枚举使用和理解。
前言在介绍枚举之前,先说说另外一个名词:[魔法数字]。 魔法数字,是指在代码中直接出现的数值。 如:user.setStatus(1);其中的数值1即为[魔法数字],你很难直观的理解这个1代表的含义。至少第一眼,你会疑惑; 为了避免这点,在开发时,我想你肯定也会添加注释。虽然注释是一件好事情,但是如果代码本身就能很好的自说明,我想你一定非常乐意不写这个注释。因为它不会让你有任何心理负担。另外有
java 枚举学习心得
java 枚举 学习心得java 枚举 学习心得java 枚举 学习心得java 枚举 学习心得java 枚举 学习心得java 枚举 学习心得java 枚举 学习心得java 枚举 学习心得java 枚举 学习心得java 枚举 学习心得java 枚举 学习心得java 枚举 学习心得
匹配算法 在搜索问题中的应用 匹配算法在搜索问题中的应用
匹配算法在搜索问题中的应用 匹配算法在搜索问题中的应用