初学Java之干货理论篇
类与对象
1.类体的内容由两部分构成:一部分是变量的声明,用来刻画属性;另一部分是方法的
定义,用来刻画行为。
2.变量声明部分所声明的变量被称作域变量或成员变量,成员变量在整个类内都有效,
其有效性与它在类体中书写的先后位置无关。
3.成员变量中的实例变量存储在堆内存中,结束时需要垃圾回收器回收空间。
局部变量和类变量存储在栈内存中,随方法的结束而结束。
4.成员变量的作用域比局部变量的作用域大。
5.方法中的局部变量的名字如果与局部变量的名字相同,那么方法就隐藏了成员变量,
如果想在该方法中使用被隐藏的成员变量,必须使用关键字this。
例如:
class Tom
{
int x=10,y;
void f()
{
int x=5;
y=x+this.x;//y得到的值是15
}
}
6.类中的构造方法的名字必须与它所在的类的名字完全相同,而且没有类型。允许一个类
中编写若干个构造方法,但必须保证它们的参数不同,即参数的个数不同,或者是参数
的类型不同。
7.在Java中,方法的所有参数都是“传值”的,也就是说,方法中参数变量的值是
调用者指定的值的拷贝。
8.对于基本数据类型的参数,向该参数传递的值不可以高于该参数的级别。
9.当参数是引用类型时,“传值”传递的是变量中存放的“引用”,而不是变量所引用的实体。
10.成员变量可细分为实例变量和类变量,在声明成员变量时,用关键字static给予修饰
的称作类变量,否则称作实例变量。
11.实例变量和类变量的区别:
(1).不同对象的实例变量互不相同。
(2).所有成员共享类变量。
(3).通过类名直接访问类变量。
12.方法重载:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,
即或者是参数的个数不同,或者是参数的类型不同。
例:
class A {
float add(int a,int b) {
return a+b;
}
float add(long a,int b) {
return a+b;
}
double add(double a,int b) {
return a+b;
}
}
13.this关键字:当一个对象调用方法时,方法中的实例成员变量就是指分配
给该对象的实例成员变量,而static变量则和其他对象共享。因此,通常情
况下,可以省略实例成员变量名字前面的this,以及static变量前面的类名
14.如果一个类有包名,那么就不能在任意位置存放它,否则虚拟机将无法
加载这样的类。
15.如果主类的包名是tom.jiafei,那么主类的字节码一定存放在...\tom\jiefei
目录中,运行时必须到tom\jiefei的上一层(即tom的父目录)目录中去运行主类
16.如果一个源文件中的类想使用无名包中的类,只要将这个无包名的类的字
节码和当前类保存在同一目录中即可。
17.Javap反编译:
使用jdk提供的反编译器javap.exe可以将字节码反编译为源码,查看源
码类中的public方法名字和public成员变量的名字。
例如: javap java.util.Data
将列出Data中的public方法和public成员变量
javap-private javax.swing.JButton
将列出JButton中的全部方法和成员变量
18.使用JDK提供的javadoc.exe可以制做源文件的html格式文档
假设D:\test有源文件Example.java,用javadoc生成Example.java
的html格式文档:
javadoc Example.java
这时在文件夹test中将生成若干个html文挡,查看这些文档可以知道
源文件中类的组成结构,如类中的方法和成员变量。
使用javadoc时,也可以使用参数-d指定生成文挡所在的目录。例如:
javadoc –d C:\document Example.java
19.一个类声明的两个对象如果具有相同的引用,那么二者就具有完全相同的实体,而且Java有所谓
的“垃圾收集”机制,这种机制周期的检测某个实体是否已不再被任何对象所拥有(引用),如果
发现这样的实体,就释放实体占有的内存。
20.如果一个类想要使用的那个类和它不在一个包中,要使用import语句完成使命。
例:用户程序可以使用tom.jiafei包中的类:import tom.jiafei.*
21.之前,我们在源文件中一直没有使用包语句,因此各个源文件得到的类都没有包名。若一个源文件
中的类想使用无名包中的类,只要将这个无包名的类的字节码和当前类保存在同一目录中即可.
特别注意:
仅供参考学习,转载请附上原文链接
分享学习心得,如有侵权,望联系本人处理
还在读大学的程序员,项目经验少,如有纰漏,感谢指正
需要源代码请联系本人
谢谢配合
如果这篇文章对您有帮助,小小的点个赞,算是给小学弟的鼓励吧!谢谢大佬!!/呱呱.jpg