java基础知识个人总结
2012-07-24 17:25
381 查看
1.java中方法声明包括方法名、返回类型和外部参数。其中参数的类型可以是简单数据类型,也可以是复合数据类型(又称引用数据类型)。对于简单数据类型来说,java实现的是只传递,方法接收参数的值,但不能改变这些参数的值。如果要改变参数的值,则用引用数据类型,它传递给方法的是数据在内存中的地址,方法中对数据的操作可以改变数据的值。以下例子可以区别简单数据类型与引用数据类型。
结果如下:
2.类变量仅在生成第一个对象时分配内存,所有实例对象共享同一个类变量,每个实例对象对类变量都会影响到其他的实例对象。类变量可以通过类名直接访问,无需先生成一个实例对象,也可以通过实例对象访问类变量。
结果如下:
3.this可以出现在实例方法和构造方法中,但不可以出现在类方法中。用static和final两个关键字修饰变量时,若不给定初始值,则按照默认规则对变量初始化。若只用final修饰而不用static,就必须只能对该变量赋值一次,不能默认。在java中若子类调用父类的构造方法,在子类的构造方法中省略掉super关键字,则系统默认有super(),即调用父类不带参数的构造方法。由于java语言规定如果一个类中含有一个或多个构造方法,系统不提供默认的构造方法(不含参数的构造方法),所以当在父类中定义了多个构造方法时,应考虑包括一个不带参数的构造方法,以防止子类省略super关键字时出现错误。抽象类不能用final来修饰,即一个类不能既是最终类又是抽象类。abstract不能与private、static、final、native并列修饰同一个方法。
4.获取类的有关信息常用方法如下:
见下边例子:
结果如下:
5.java中使用Class对象得到一个类的实例。为了得到类的一个对象,先要得到一个和该类相关的Class对象,只要使用Class的类的方法:
就可以返回一个和参数className指定的类相关的Class对象,再让这个Class对象调用:
方法就可以得到一个className类的对象。
注意:当使用Class对象调用newInstance方法实例化一个className类的对象时,className类必须有无参数的构造方法。
见如下的例子:
结果如下:
import java.io.*; public class PassTest{ float ptValue; public void changeInt(int vallue){ value=55; } public void changeObjValue(PassTest ref){ ref.ptValue=99f; } public static void main(String args[]){ int val; PassTest pt=new PassTest(); val=11; System.out.println("初始的整型值是: "+val); pt.changeInt(val); System.out.println("改变后整型值是: "+val); pt.ptValue=101f; System.out.println("初始的整型值是: "+pt.ptValue); pt.changeObjValue(pt); System.out.println("改变后整型值是: "+pt.ptValue); } }
结果如下:
2.类变量仅在生成第一个对象时分配内存,所有实例对象共享同一个类变量,每个实例对象对类变量都会影响到其他的实例对象。类变量可以通过类名直接访问,无需先生成一个实例对象,也可以通过实例对象访问类变量。
class 梯形{ float 上底,高; static float 下底; 梯形(float x,float y,float h){ 上底=x; 下底=y; 高=h; } float 获取下底(){ return 下底; } void 修改下底(float b){ 下底=b; } } class A{ public static void main(String args[]){ 梯形 laderOne=new 梯形(3.0f,10.0f,20),laderTwo=new 梯形(2.0f,3.0f,10); 梯形.下底=200;//通过类名操作类变量 System.out.println("laderOne的下底:"+laderOne.获取下底()); System.out.println("laderTwo的下底:"+laderTwo.获取下底()); laderTwo.修改下底(60);//通过对象操作类变量 System.out.println("laderOne的下底:"+laderOne.获取下底()); System.out.println("laderTwo的下底:"+laderTwo.获取下底()); } }
结果如下:
3.this可以出现在实例方法和构造方法中,但不可以出现在类方法中。用static和final两个关键字修饰变量时,若不给定初始值,则按照默认规则对变量初始化。若只用final修饰而不用static,就必须只能对该变量赋值一次,不能默认。在java中若子类调用父类的构造方法,在子类的构造方法中省略掉super关键字,则系统默认有super(),即调用父类不带参数的构造方法。由于java语言规定如果一个类中含有一个或多个构造方法,系统不提供默认的构造方法(不含参数的构造方法),所以当在父类中定义了多个构造方法时,应考虑包括一个不带参数的构造方法,以防止子类省略super关键字时出现错误。抽象类不能用final来修饰,即一个类不能既是最终类又是抽象类。abstract不能与private、static、final、native并列修饰同一个方法。
4.获取类的有关信息常用方法如下:
String getName();//返回类的名字 Constructor[] getDeclaredConstructor();//返回类的全部构造方法 Field[] getDeclaredFields();//返回类的全部成员变量 Method[] getDeclaredMethods();//返回类的全部方法
见下边例子:
import java.lang.reflect.*; class Rect{ double width,height,area; public double getArea(){ area=height*width; return area; } } public class A{ public static void main(String args[]){ Rect rect=new Rect(); Class cs=rect.getClass(); String className=cs.getName(); Constructor[] con=cs.getDeclaredConstructors(); Field[] field=cs.getDeclaredFields(); Method[] method=cs.getDeclaredMethods(); System.out.println("类的名字:"+className); System.out.println("类中有如下的成员变量"); for(int i=0;i<field.length;i++){ System.out.println(field[i].toString()); } System.out.println("类中有如下的方法"); for(int i=0;i<method.length;i++){ System.out.println(method[i].toString()); } System.out.println("类中有如下的构造方法"); for(int i=0;i<con.length;i++){ System.out.println(con[i].toString()); } } }
结果如下:
5.java中使用Class对象得到一个类的实例。为了得到类的一个对象,先要得到一个和该类相关的Class对象,只要使用Class的类的方法:
public static Class forName(String className)throw ClassNotFOuntException
就可以返回一个和参数className指定的类相关的Class对象,再让这个Class对象调用:
public ObjectnewInstance() thow InstantiationException,IllegalAccessException
方法就可以得到一个className类的对象。
注意:当使用Class对象调用newInstance方法实例化一个className类的对象时,className类必须有无参数的构造方法。
见如下的例子:
class RectA{ double width,height,area; public double getArea(){ area=height*width; return area; } } public class A{ public static void main(String args[]){ try{ Class cs=Class.forName("RectA"); RectA rect=(RectA)cs.newInstance(); rect.width=100; rect.height=200; System.out.println("rect的面积"+rect.getArea()); }catch(Exception e){ } } }
结果如下:
相关文章推荐
- Java基础知识精华部分(个人总结)
- Java基础知识总结(绝对经典)
- 黑马程序员-----java基础语法知识总结*
- JAVA基础知识精华总结
- Java多线程核心技术(一):基础知识总结
- Java基础知识总结
- 关于java的基础知识总结
- Java基础知识总结
- Java基础知识总结
- Java基础核心知识总结(绝对经典)
- java基础知识总结8(数据库篇1)
- 我的java基础知识总结ppt
- Java基础知识总结(八)——反射
- JAVA基础知识精华总结
- Java基础知识总结(超级经典)
- Java基础知识总结
- JavaWEB基础知识总结
- java基础知识总结。
- 黑马程序员_01Java基础知识总结
- JAVA基础知识精华总结