问答题
1,在声明类时,类名应该有哪些习惯?
答:类的名字不能为关键字,符合标识符的规范,必须为大写字母开头的单词组成,多个单词的每个单词首字母都写。而且一般定义类名是最好见名知意。
2,类体内容有哪二种重要的成员?
答:分为:成员变量 和 方法
成员变量分为:实例变量和类变量 方法分为:构造方法和其他方法;
3,实例方法可以操作类变量吗?类方法可以操作实例变量吗?
答:实例方法可以操作成员变量(类变量和实例变量),类变量也可以说是与该类所有创建的对象的关联变量,所有对象共享。
类方法不能操作实例变量,类方法就是static修饰的方法,static修饰得方法在加载class得时候就加载完成,这个时候构造方法还没执行。
此时非static的属性比如成员变量还没初始化,所以不能调用,因为都还不存在。
4,当类的字节码加载到内存时,类变量一定分配内存空间吗?
答:首先给类变量分配内存空间,实例变量只有被new时才会分配到堆内存
5类的实例变量什么时候会分配内存空间?
答:只有对象被新建的时候才会分配
6,一个类的类变量被该类创建的所有对象共享吗?
答:相当于所有对象的关联变量,固能被共享
7,不同对象的实例变量分配的空间地址一定不同吗?
答:实例变量仅仅是与相应的对象关联的变量。也就是说,不同对象的实例变量互补相同,即分配到不同的内存空间,
改变其中一个对象的实例变量也不会影响其他对象相关的实例变量。
8,什么叫方法的重载?构造方法可以重载吗?
答:方法的重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即参数的类型或个数不同。
如:Max(double x,int y)与 Max(int a ,double b , bybe c )就是名字相同的构造函数,他们即为重载。根据传递到构造
函数的值的类型选择符合的构造函数。
9,为什么类方法不能调用实例方法?
答:因为类创建对象之前,实例方法没有入口地址。
10.为什么类方法中不能操作实例变量?
答:在类创建对象之前,实例变量还没分配内存。
11,实例方法可以通过类名调用吗?
答:不能,只有该类创建对象时,类中的实例方法才会分配入口地址。
12,关键字this可以出现在构造方法中吗?可以出现在实例方法中嘛?类方法了?
答:在构造方法中代表使用该构造方法所创建的对象。
在实例方法中代表该方法的当前对象。
类方法中是直接通过类名+"."来调用方法了,可能对象还没创建了。
13,源文件中声明编写的类一定在同一包中吗?
答:不一定!最好是在同一包中。也可以用import与语句引入源文件中。
答:前面指导入当前路径下的所有类
后者指导入当前路径下的Button类
15.如果程序中使用了“import java.util.*;” ,程序运行时,要加载java.util包中的全部类到内存吗?
答:不会,只会加载本程序用到的类的内存中。
16,有那几种访问权限修饰符?说说其中一种。
答:修饰符有:共有public ,私有private,保护protected
private:只有在本类中创建的该类对象才能访问私有方法和变量
17,怎样反编译一个类?
答:使用SDK提供的反编译器javavp.exe文件可以实现将字节码文件反编译为源码文件。可查看源码中public方法和public成员变量的名字。
包名:可以通过关键字package声明包语句。package、语句必须作为源文件的第一条语句,指明该源文件定义的类所在的包。
一般格式如:package 包名.包名.包······;
在使用是要记住:1,如果你要把一类放到包里面,第一句话写package,后面包可以无限跟,
约定俗成给包起名是公司的域名倒过来写,但是要注意你编译出的class文件必须位于正确的目录下面,即要和我们包的层次
要完成一致。2,如果你想在另一个类里面要用到包里面的类,必须要把名字写全,3,执行一个类要写全名。
在每次使用时都需要写全类的全名,比较麻烦,固要用import语句,来引入包中的类。如: