定义一个类时,其内部的问题

问题描述

本人正在自学java,有下面疑惑publicclassColor{privateStringname;publicstaticfinalColorRED=newColor("红色");//........}

这个Color不是类名吗,我知道类中有构造方法,可以同名,但这个不是在定义方法啊,更像是定义字符串常量,为什么可以这样写?

解决方案

解决方案二:
Color类里面应该有一个和类同名的构造方法,用来初始化对象的newColor("红色");就是调用那个构造方法,生成一个类的对象并用RED指向这个对象
解决方案三:
这个不是在定义这个类么?以下是完整的代码,整体还算明白,就是publicstaticfinalColorRED=newColor("红色")的Color感觉莫名其妙publicclassColor{privateStringname;publicstaticfinalColorRED=newColor("红色");publicstaticfinalColorGREEN=newColor("绿色");publicstaticfinalColorBLUE=newColor("蓝色");publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}privateColor(Stringname){this.setName(name);}publicstaticColorgetInstance(inti){if(i==0){returnRED;}if(i==1){returnGREEN;}if(i==2){returnBLUE;}returnnull;}}

解决方案四:
你感觉奇怪就是因为在类中定义了自己的实力而已,如果Color换成Person或其他类你就应该不奇怪了
解决方案五:
哦,这不是语法的问题,因为能通过编译、能正常运行,语法没有问题属于语义的问题,下面是示例主要看main方法里面使用Color类的地方,有些用法易于理解有些地方让人迷惑而已packagetopics_390913711;publicclassColor{privateStringname;publicstaticfinalColorRED=newColor("红色");publicstaticfinalColorGREEN=newColor("绿色");publicstaticfinalColorBLUE=newColor("蓝色");publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}privateColor(Stringname){this.setName(name);}publicstaticColorgetInstance(inti){if(i==0){returnRED;}if(i==1){returnGREEN;}if(i==2){returnBLUE;}returnnull;}publicstaticvoidmain(String[]args){Colorred=newColor("红色");Colorgreen=newColor("绿色");Colorblue=newColor("蓝色");System.out.println(red.getName());System.out.println(green.getName());System.out.println(blue.getName());System.out.println(red.GREEN.BLUE.getName());//令人难以理解的例子Colorcolor=newColor("");System.out.println(color.RED.getName());System.out.println(color.GREEN.getName());System.out.println(color.BLUE.getName());}}

解决方案六:
用处是,“红色”等颜色对象经常用到,就在Color类中定义一个常量类RED,方便大家直接使用:Color.RED就可以了,无需每次都要new操作
解决方案七:
@Android_iPhone虽然回复了很多,但感觉乱乱的,至少试了下你写的代码,通不过。明明是常量的值么。@oh_Maxy,@u011564172是啊,这么用,总感觉有循环迭代的错误(自己想的词)一样。我就理解成构造实例了,算是每次是现实都默认带着的。。。。

时间: 2024-09-08 14:08:01

定义一个类时,其内部的问题的相关文章

成员函数-关于实例化一个类时占用的内存大小问题

问题描述 关于实例化一个类时占用的内存大小问题 在PHP语言中,写一个类,如果类的成员函数 很多,会不会增大实例化这个类时占用的内存?如下:class abc{public function __construct(){xxxxxx;xxxxxx;}public function a(){xxxxxx;}public function b(){xxxxxxx;}}//classs那当我实例化它时,是不是函数 越多占的内存越大? 解决方案 函数当然占用一些空间,但是要分清楚函数和调用函数两个概念.

为什么要在定义抽象类时使用abstract关键字

众所周之,在任何面向对象的语言中(包括Java.C#),在定义抽象类时必须使用abstract关键字.虽然这已经习已为常了,但实际上abstract是为了在实现接口或继承抽象类避免歧议而必须存在的. 看如下代码: abstract class Class1 { abstract void method(); } 上面的代码是一个典型的抽象类,在定义类时和定义方法时都使用了abstract.但从编译器的角度来说,在定义类时完全可以不使用abstract,如下面的代码所示: class Class1

c++-opencv怎么定义一个模板作用于每一个像素值,比如log算子的模板?

问题描述 opencv怎么定义一个模板作用于每一个像素值,比如log算子的模板? 想定义一个模板,opencv中应该有专门的函数吧?可是我没找到,新人真心求教! 解决方案 http://blog.sina.com.cn/s/blog_7155fb1a0100wzkz.html 解决方案二: http://blog.csdn.net/xiaowei_cqu/article/details/7718831 Filter2D 对图像做卷积 void cvFilter2D( const CvArr* s

c++-C++可以在类中定义一个类吗?

问题描述 C++可以在类中定义一个类吗? 比如像下面这样: 解决方案 完全可以注意:内部类可以访问外部类的私有成员,外部类不能访问内部类的私有成员! 解决方案二: 可以呀,就像在结构体里申明结构体一样,不过好像通常不这样用. 解决方案三: 嵌套类的概念,相当于一个内部类. 解决方案四: 可以的,不过看起来比较别扭 解决方案五: 可以,嵌套类有以下性质: 一.**可见性**嵌套类对于外围类: 嵌套类仅仅是声明在外围类内部的类型,而不是外围类的成员 外围类不具备嵌套类所定义的成员 对于外围类来说,嵌

不确定数据多少的类-c++如何定义一个类中的数据不确定的类

问题描述 c++如何定义一个类中的数据不确定的类 比如 class s { public: s(int a) {b=a;} ... private: int b; int w[b]; ..... }; 我试着用new,但是还是不成功,那么有什么办法可以使类中的数据多少由外部确定呢? 这是我在重载[]成员访问运算符 和重载()函数调用运算符时遇到的问题. 解决方案 用静态数组的时候,必须同时指明数组的大小,比如int w[10],这是因为静态数组在栈上分配,在编译的时候就已经分配好内存了.楼主可以

asynctask为什么要定义一个接口

问题描述 asynctask为什么要定义一个接口 asynctas定义的接口在哪里调用的呢?为什么把对象传进去就可以调用了呢?是java环境还是编译器在调用呢?这么做有什么好处? 解决方案 本质上Task是一个线程,所以需要Callable接口http://blog.csdn.net/liuhe688/article/details/6532519 解决方案二: 你先了解下异步任务的内部执行原理,可以参考:http://zuizui0122.blog.163.com/blog/static/18

《CCNP安全VPN 642-648认证考试指南(第2版)》——5.8节为无客户端访问VPN使用一个外部和内部的CA

5.8为无客户端访问VPN使用一个外部和内部的CA CCNP安全VPN 642-648认证考试指南(第2版) 你可能已经看到了,在SSL隧道的协商阶段,服务器向客户端发送一份它自己的数字证书的拷贝以实现被客户端验证的目的.在同一个过程中,服务器也会向客户端发出请求以得到一份客户端证书文件的拷贝,客户端如果安装了证书的话,它会向服务器发送它自己的一份证书拷贝以使服务器能够验证客户端. 可以使用两个选项为客户端验证部署证书:可以使用一个内部CA,在ASA上配置它并启动它以产生你自己的证书文件并将它们

ios-iOS 如何定义一个控件,显示一段文字,文字部分字有点击事件

问题描述 iOS 如何定义一个控件,显示一段文字,文字部分字有点击事件 最近做一个项目,有个页面要求显示一段文字,文字部分可点击,点击的部分文字的长度是不固定的,并且,不止一处需要点击,请教大神们,如何实现呢? 解决方案 用 UIWebView 加载一段 html 标记文本是最简单的, 里面用 的标签来定义一个超链接文本自己监听 webview 的回调就行了 解决方案二: http://bbs.csdn.net/topics/390834481 解决方案三: http://blog.csdn.n

第三节--定义一个类 -- Classes and Objects in PHP5 [3]

object|php5 /*+-------------------------------------------------------------------------------+| = 本文为Haohappy读<<Core PHP Programming>> | = 中Classes and Objects一章的笔记 | = 翻译为主+个人心得 | = 为避免可能发生的不必要的麻烦请勿转载,谢谢 | = 欢迎批评指正,希望和所有PHP爱好者共同进步! +--------