上一页 1 ··· 16 17 18 19 20
摘要: Java中提供了定义内部类的选择,这一机制使得代码的书写更为方便和优雅(功能上相关的代码被紧密的组织在了一起)。需要注意的是,内部类和传统的组合(即将一个类的实体定义为另一个类的成员)是完全不同的,其主要特性表现在以下的一些方面:1、外围类的实例并不一定具有内部类的实例,除非显示的将内部类的实例定义为外围类的数据成员。public class Outer{ int no; public class Inner{}}这里类inner为类outer的内部类,但是在类outer内部只定义了inner类,并没有将其作为outer一定要具有的成员。Example:Outer instanceA= ... 阅读全文
posted @ 2012-06-24 09:48 airforce 阅读(965) 评论(0) 推荐(0) 编辑
摘要: Java提供了public, private, protected 三个访问权限修饰词,提供了以下四种访问权限控制机制:1、包访问权限;2、Public访问权限;3、Private访问权限;4、Protected访问权限;1、包访问权限包访问权限是Java为了便于程序员开发而给定的一种权限选择。当方法或域未给定访问权限限制符时,其默认具有该权限。具有该权限的方法和域成员,在包内是完全可见的(注意要与其对象依附在一起),而包外则不可见。这有点类似于C++中友元类,友元类见彼此可见,以简化访问。E:Package accesscontrol//Animal.javapublic class Ani 阅读全文
posted @ 2012-06-19 10:39 airforce 阅读(4613) 评论(0) 推荐(0) 编辑
摘要: 可变参数列表是JavaSE5以后所添加的一个重要特性,它使得程序员可以用更少的代码书写出优雅的方法访问方式。可变参数列表将大量的工作交给了编译器完成,包括参数数组的封包,自动转型等任务。在可变参数列表功能出现以前,函数的调用格式,必须与函数的声明格式完全对应一致。即对应位置的参数,必须满足类型要求。Example:static double addAll(Ball[] ballArray ){ double totalDiameter=0; foreach(ball b:ballArray ) { totalDiameter=b.diameter+totalDiameter; ... 阅读全文
posted @ 2012-06-18 10:52 airforce 阅读(186) 评论(0) 推荐(0) 编辑
摘要: Java编译器在初始化对象的时候,为同一类型(即同一类)的对象在栈区存储了函数副本(即使对static方法也是如此)。为了区别不同对象,新对象生成时,会由编译器生成一个引用变量进行指向。该引用变量指向堆区中存储具体对象域属性值的内存区域,即同属一类的对象,共享其类定义的函数。既然函数为公用的,那么当同一方法被不同对象调用的时候,如何正确的区别调用此方法的对象以产生正确的行为呢?Example:class Test{ int num; Test(int i) {num=i;} print() {System.out.printl(num);}}main(){ Test t1=t1(1); T.. 阅读全文
posted @ 2012-06-18 09:50 airforce 阅读(874) 评论(0) 推荐(0) 编辑
摘要: 方法重载存在的必要性可以从类需要多样的构造器处得到一定的合理解释。方法的重载为灵活的编写程序,带来了极大的好处!(一定要将方法的重载与方法的覆盖区别开来)重载:为了表述同一行为目的的方法名,具有不同的行为方式。覆盖:发生在继承中,导出类具有与父类具有相同方法名和参数列表的方法,以实现对父类方法的屏蔽和覆盖。(可以通过final 关键字防止覆盖现象的发生)Example:class parent{ run(){}}class child extends parent(){ run(){}}此例子中,导出类child即实现了对基类parent中run()方法的覆盖。重载的方法具有相同的方法名,.. 阅读全文
posted @ 2012-06-13 22:03 airforce 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 无论是Java和C#都要求对象在建立时,其Field成员能够被初始化,于是一个对象在建立的时候需要调用其构造器(初始化方法)。构造器的格式,example:class Bread{ String taste; Bread() //构造器 { //Initialization }}构造器的标准格式要求构造方法必须与类名一致,不能有返回值类型标识(void也不行)。当生成一个新对象时:首先为对象分配存储空间,然后调用构造器来对域成员进行初始化。new Bread(),即生成一个新对象时,其构造器是被自动的调用的。当类中未显示的给出构造器时,编译器会调用默认的构造器完成域的初始化操作。... 阅读全文
posted @ 2012-06-13 21:27 airforce 阅读(709) 评论(0) 推荐(0) 编辑
摘要: MyEclipse中的程序调试与visualstudio 2010相比,稍显麻烦。MyEclipse中调试程序需要将当前工作叶跳转到含有main函数的,按下F11键,如果程序运行中中存在错误(比如越界访问内存元素),会自动停止到此时的临界数值。此时一定要小心的分析程序报错处的语句,常常可能暴露出一些难以发现的逻辑错误如:if(flag==true)写为了if(flag=true),由于这两句话都没有语法上的错误,编译器无法给出合理的错误信息提示,导致大量的时间浪费用于发现Bug。所以一定要认真的检错报错处,各变量的取值情况,以此为参考认真检错报错处前后的语句逻辑错误。灵活的使用调试器,设置调试 阅读全文
posted @ 2012-06-13 20:56 airforce 阅读(5717) 评论(0) 推荐(0) 编辑
摘要: 无论是Java还是C#中,其常常需要对数据容器对象进行遍历。Java中提供了十分方便的遍历语法,以支持Foreach语法。传统的遍历方式一般为(for i=1;i<=arrary.length();i++){ Type temp=arrary[i]; /****/}卸载元素:从容器中取出存放的数据元素。此种方式需要设置循环变量,并控制步长,以对数据容器中的数据中的数据元素进行遍历,而且需要逐一的对容器中的数据进行卸载。但是Java中可以通过for循环实现foreach遍历,遍历容器中的每一项,而且自动卸载元素。for(float x:f){ //x即为从float容器f中取出的一个元素} 阅读全文
posted @ 2012-06-13 20:18 airforce 阅读(7094) 评论(1) 推荐(0) 编辑
上一页 1 ··· 16 17 18 19 20