怎么理解类里面的这样一个方法
如题:代码如下:
{
System.out.println(b);
System.out.println("o");
System.out.println("o");
System.out.println("k");
}
在类里面写这样一段代码,所有的代码仅仅包含在一对大括号,也没有方法名,请问下高手如何理解这样一段代码,难道它是构造函数的一种吗? --------------------编程问答-------------------- 劝楼主好好学习下java基础知识 --------------------编程问答-------------------- 输出一行 b是b对应的赋值,其他是输出一行“”里的字符 --------------------编程问答--------------------
谢谢,我的java基础确实不行。呵呵 --------------------编程问答-------------------- “在类里面写这样一段代码,所有的代码仅仅包含在一对大括号,也没有方法名”
----这样的代码能编译通过么楼主?楼主把全部代码贴出来看看 --------------------编程问答-------------------- 【修饰符】 class 类名【extends 父类名】【implements 接口名】
{ 成员变量;//表明类的状态
成员方法;//描述类的行为
}
水果类
{ 颜色;//属性
价格;//属性
吃()//方法
{
}
}
上面的写法是不对的,一个类可以不定义属性,但必须要有方法,个人理解。如有不对,欢迎纠正。建议你写一个完整的程序出来,可以将问题描叙清楚。 --------------------编程问答-------------------- 应该是一个语句块 --------------------编程问答-------------------- 虽然不知道是对是错。。但是没见过,类名、方法名能省吗?? --------------------编程问答-------------------- 就叫 块
还有一种是前面加static的
static {
}
这种见得应该更多一些 --------------------编程问答-------------------- 例如:
class A {
sysout...
sysout...
}
这的定义一个类,类没有main方法,也就是说不能独立运行,
或者是8 楼说的
class A {
static {
//这叫静态代码块
}
{
//这叫代码块
}
}
你说的构造方法和这个无关。
如果你不显示地定义构造方法,系统会默认地提供无参数的,名字由类型而定的无参数构造方法。
静态代码块是Java虚拟机加载类的时候执行的,
代码块是对 对象的初始化。
--------------------编程问答-------------------- static代码块,static块执行的速度比类的执行速度快,类和static块同时加载在JVM上,但是类加载在JVM上要实例化,因此static块的执行速度快 --------------------编程问答-------------------- 瞎说!上面的写法叫做初始化块,类可以不定义属性,也可以没有方法。建议你自己先敲几行代码看看。 --------------------编程问答-------------------- 这个就是构造初始化块吧,只不过lz提供的代码没做什么事情,在new这个类的对象的时候,这个初始化块都会执行的,而且是先执行这个,然后执行构造函数的。作用的话其实我认为意义不是很大,因为平时写代码的时候都没这么用过 --------------------编程问答--------------------
瞎说!上面的写法叫做初始化块,类可以不定义属性,也可以没有方法。建议你自己先敲几行代码看看。
你说的是对的,确实是可以不定义方法,不过感觉这种类的实用性好像不是很强吧?第一次看到这样的类。 --------------------编程问答-------------------- 谢谢大家的讨论,有多少个这样的代码块,new初始化对象的时候都会调用。 --------------------编程问答-------------------- java编程思想里叫非静态实例初始化.
在类的空间分配完后执行,只能为类变量赋值,而不能直接引用类变量.
楼主可以试验一下. --------------------编程问答-------------------- 只能说建议楼主好好看看java语言细则吧,,这个明显是基础啊!!! --------------------编程问答-------------------- 是代码块,常见静态块
static{....} //优先于构造方法执行,他在JVM加载类的时候就一并执行了。 --------------------编程问答--------------------
一个类可以不定义属性,但必须要有方法,亲,我顶一个class A 什么都不写不可以啊,你这话我看不懂 --------------------编程问答-------------------- 这就是一个非静态块而已,在ClassLoader加载类时执行。和方法有本质区别,方法是可以被调用的,它就加载时运行一次,没有句柄,无法被别的对象调。 --------------------编程问答-------------------- 崩溃了,大家看一下堆栈怎么存放代码在说好吗,分几个区!静态区、常量区、代码区等! --------------------编程问答--------------------
精辟
补充:Java , Java SE