初学Java之干货理论篇_类与对象

初学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

发布了49 篇原创文章 · 获赞 39 · 访问量 5211

猜你喜欢

转载自blog.csdn.net/qq_44749053/article/details/102624568