您的位置:首页 > 移动开发 > Android开发

Android学习总结————Java程序设计技巧与开发实例(朱福喜)

2015-01-14 21:01 190 查看
第一部分 记于2013年7月21
1.安卓开发环境的安装

(1)设置相关环境变量

a.JAVA_HOME

D:\Java\jdk1.6.0_29

b.PATH %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;D:\Android\android-sdk-windows\tools;D:\Android\android-sdk-windows\platform-tools

c.CLASSPATH

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;



(2)Eclipse 软件与 Android SDK的绑定



2.调用cmd 命令行调用java

输入:F: 即可进入F盘路径

输入:cd F:\电子实验室\project\例1.6\src

即可进入F:\电子实验室\project\例1.6\src

(1)先调用 javac *.java 文件,没有任何信息显示,代表程序能正常运行

在该目录下生成*.class文件

(2)再调用 java *(直接使用文件名即可)

3. Java 程序设计基本常识

(1)Java 语言区分大小写

(2)自增运算符++,自减运算符--

a.做变量的前缀时,首先变量进行+1或-1运算,然后所得的值在表达式中参与运算

b.做变量的后缀时,变量先参与表达式中的运算,再进行+1或-1运算

c.不管是前缀还是后缀都会对变量自身产生效果

(3)嵌套的if-else-if:仔细分析,避免条件的冗余

(4)switch 语句只能处理 int 和 char 类型的表达式

(5)switch语句与嵌套的 if-else-if 可以相互转换

(6)for 循环 :首先对用于逻辑判断的变量进行初始化,然后进行逻辑判断,若判断结果为真,则执行 for 所包含的代码段,再修改变量,最后又回到逻辑判断。

(7)while 循环

(8)do-while 循环:在每次执行一次 do 所包含的代码段后,逻辑判断一次。故循环体至少被执行一次。

(9)break 与 continue 的区别

(10) name1 == name2

name1,name2为String类型,不是Java提供的基本数据类型,这时==判断字符串的存储位置是否相同

(11)控制符\t 可以对齐输出格式

(12)System.out.flush();//每次输入完文件之后调用一次,防止缓冲区的数据并未读

4.求小于给定数的质数个数

(1) 一个正数如果只能被1和它自己整除,那么该数就是质数

(2) 如果一个数n能被primeCandidate,那么必定存在整数m,使得 n*m = primeCandidate,并且m、n 不会都大于 primeCandidate的算术平方根,因此选择除数时可以选择小于或等于 primeCandidate的算术平方根 的正整数。

(3)如果一个数不能被2整除,则它不能被所有的偶数整除,因此我们只需要用2和其他的奇数来整除该数,从而降低运算量,提高程序的运算效率



分割线



第二部分——记于7月28日
一、成员变量与局部变量
1.一个变量在类中但又不是在方法中被定义,那么这种变量是成员变量。用关键字static修饰的话,那么该类的所有方法都可以直接访问成员变量。
2.定义在方法内的变量叫局部变量。
3.在所有用static定义的方法中也要用关键字static定义成员变量。
二、变量的生命周期:变量在什么地方是有效的。
1.局部变量如果定义在循环体内部,它只在循环体内部有效,在循环体外部就不能访问。
三、利用数组计算复利(编程实例)
(1)计算每年的利息
(2)将每年的利息加入该年的结余
(3)计算平均利息
(4)显示结果



四、1.import java.text.DecimalFormat;调用库函数,十进制格式化工具
DecimalFormat formatTool = new DecimalFormat("#,###.0");
System.out.print("\tInt: " + formatTool.format(interest[i]));
System.out.print("\tAmt: " + formatTool.format(amount[i]));
System.out.println("\tAvg.Int: " + formatTool.format(avg[i]));
2.args 可以不是固定的 只是个局部变量名而已
五、面向对象程序设计的目标:创建抽象的、可以运行的软件对象,这些软件对象就像现实世界的对象一样能够使用和操作。
(1)类:基本结构,包含数据域和操作这些数据的机制。
(2)实例:实例是以类为模板创建的对象
(3)封装性:允许或禁止访问类或对象的数据和成员方法的能力
(4)重载性:允许一个成员方法有多重定义
(5)继承性
(6)多态性

六、构造方法:是类的一种特殊方法,构造方法名与类名相同。它在类实例化对象时被执行,并且没有返回值
七、析构方法:当Java的垃圾回收机制将要释放无用资源的时候,会自动调用析构方法,该方法称为finalize。其语法如下:
protected void finalize()
{/*具体实现*/}
八、封装
public: 公有成员变量、成员方法、类可以被任何类访问
protected:保护成员变量、成员方法只能被类本身、子类和同一包、目录下的所有类访问
private:私有成员变量和成员方法只能被类本身访问
无限定词:没有限定词的成员变量、成员方法或类的类型成为友员类型,它能被类本身以及同一包或目录下的所有类访问

分割线



第三部分——记于2013年8月04日

1.void java.lang.System.gc()

学会使用jdk文档,查看库函数

运行垃圾回收器。调用此方法意味着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制从方法调用中返回时,虚拟机已经尽最大努力回收了所有丢弃的对象。

名称 gc 代表“垃圾回收器”。虚拟机根据需要在单独的线程中自动执行回收过程,甚至不用显式调用 gc 方法。

2.隐含地调用超类的构造方法

(1) 当子类被调用的时候,隐含地调用超类的构造方法,此时没有为构造方法输入任何参数,除非在子类的第一行明确地调用超类的构造方法。如果超类没有无参数的构造方法,子类又不明确地调用超类的构造方法,编译器将无法编译子类。

(2)避免隐藏地调用超类的构造方法

a.每个子类都应当明确地调用超类的一个构造方法,而且必须在第1行调用。

b.为每个可能成为超类的类提供一个无参数的构造方法,如果还有其他需要,则重载构造方法

(3)析构方法也应该注意类似的情况

3.成员方法和成员变量的覆盖

如果在子类中重新定义了一个与它的超类完全相同的一个方法(成员变量),子类的将覆盖对应超类中同名的。此时超类中该方法(成员变量)仍可在子类中使用,但要加上关键字super和原点操作符。

4.抽象方法和抽象类:

(1)抽象方法只有方法的声明,但没有方法体。可以使用限定词abstract定义一个方法为抽象类型。拥有抽象方法的类是一个抽象类,它也同样需要限定词abstract来声明。

(2)一个从抽象类扩展而来的类,如果它没有把抽象方法具体化,则它也是一个抽象类。抽象类不能实例化。

(3)在抽象类中声明抽象方法可以迫使子类实现继承而来的抽象方法。

5.最终方法和最终类:最终方法是在派生类中不能被覆盖的方法,最终类是不能被扩展的类。一个类可以含有最终方法用final声明。

6.Java的基类Object

(1)每个类继承object类的方法

(2)每个类既属于它所定义的类型,又属于Object类型

方法能使用超类的实例,就能调用其子类的实例嘛????

7.如何定义一个数组存储各种类型的元素?

答:每个Java类都是由Object扩展而来,因此,所有的类都属于Object类型,故可以通过创建一个Object类型的数组来存储任何类型的对象。 由此可以看出,要在一个数组中存储相关对象,创建一个类作为这些对象的父类,并且定义该数组为父类类型的数组即可。

(每个元素都可在数组中检索到,在instanceof的帮助下能确定其原来的类型)

8.多级继承与多重继承

多级继承:一个超类的子类被另一个类继承。Java支持多级继承。当最低级别的类实例化,每个超类依次被调用,从最高级开始。

多重继承:一个类同时继承多个超类。Java不支持多重继承。

9.接口:

接口是由一些抽象方法和常量所组成的一个集合。接口中的方法都默认为abstract,常量都默认为final。

一个类可通过关键字implements来继承一个或多个接口。

10.成员方法的调用

(1)实例化对象.成员方法

(2)new 类名().成员方法

静态成员方法(用static 修饰):还可以通过 类名.成员方法,类不需要实例化

邮箱:wlwl2812@163.com 微博:[b]http://weibo.com/khanwl[/b]
如有转载,请说明出处:http://blog.csdn.net/u010577125

嵌牛学苑:http://school.2embed.com/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: