郑州大学上海校友会
标题: 《Java语言程序设计基础篇》摘抄 [打印本页]
作者: wuyadu 时间: 2015-1-31 18:23
标题: 《Java语言程序设计基础篇》摘抄
本帖最后由 wuyadu 于 2015-1-31 18:18 编辑
第一章
Java的三个版本:Java Standard Edition(标准版 Java SE)、Java Enterprise Edition (企业版 Java EE)、Java Micro Edition(微型版 Java ME)。
三个版本的应用方向:Java SE 开发客户端独立的应用程序或Java applet;Java EE 开发服务器端的应用程序;Java ME 开发移动设备如手机的应用程序。
Java开发工具:官方工具Java Development Toolkit,Java开发工具包,简称JDK。JDK是一套独立程序的集合,每个程序都可通过命令行调用,用于开发和测试Java程序。其他的快速开发工具或平台有NetBeans、Eclipse、TextPad等。
Java程序的官方集成开发环境:IDE(Integrated Development Environment)
Java源代码文件以.java保存,源文件Welcome.java使用记事本等文本编辑器就可以编辑、创建。
Java语言程序创建后必须编译后才能被执行。如果对源程序进行了修改,必须重新编译后才能执行。
例如,编译Welcome.java程序:
javac Welcome.java
编译后,编译器(compiler)生成一个与程序同名的.class字节码文件,Welcome.class
运行java虚拟机是对.class文件向机器指令的再次翻译,只要复制.class文件就可以实现java程序的快速跨平台移植,这个物理平台上必须也已经安装JVM平台。
在控制台显示Welcome to Java的示例
Welcome.java
// 定义类名,类是Java语言的项目名称
public class Welcome {
/* 定义主方法名称,程序从main方法开始执行
* 方法就是Java语言中函数的叫法,可以是Java系统预定义的,也可以是程序员自定义的
*/
public static void main(String[] args) {
System.out.println("Welcome to Java!");
// 每句程序以分号(;)检束
/* 程序中一对大括号内的程序叫一个块,一个块以左大括号开始,以右大括号结束
* 无论是方法(method),还是类(class),都由性质、名字和块三部分组成。
* java源程序区分大小写,因此,main和Main是不相同的。
*/
}
}
作者: wuyadu 时间: 2015-2-1 18:36
第二章 第一篇
计算圆面积程序示例CycleArea.java
//导入包java.util.Scanner,以便调用;
Import java.util.Scanner;
public class CycleArea {
public static void main(String[] args) {
// 声明double类型的变量radius、area,声明double类型常量并PI赋值
double radius,area;
double PI = 3.1415926;
// 创建一个Scanner类名叫input变量的对象,并将控制台输入数据赋值给input变量;
Scanner input = new Scanner (System.in);
// Scanner类:从控制台输入
System.out.print(“Enter a number for radius: “);
// System.out.print输出显示字符串
// 从键盘读入一个Double型输入
radius = input.nextDouble();
area = radius * radius * PI;
System.out.println(“The area for the circle of radius “ + radius + “is “ + area);
// System.out.println输出显示字符串后换行
// 加号(+)有两种意义:一是做加法,二是做字符串连接符
/* 源代码中,字符串常量不能跨行,过长的字符串必须断成若干个单独的子串,然后用连接符将它们组合起来*/
}
}
计算3个数字平均数示例ComputerAaverage.java :
//导入从控制台读取输入java.util.Scanner库包
import java.util.Scanner;
public class ComputerAverage {
public static void main(String[] args) {
//定义控制台输入变量input
Scanner input = new Scanner(System.in);
//输出录入提示
System.out.print(“Enter 3 numbers: “);
//定义并获取3个Double型输入
double number1 = input.nextDouble();
double number2 = input.nextDouble();
double number3 = input.nextDouble();
//计算平均数
double average = (number1 + number2 + number3) / 3;
//显示计算结果
System.out.println(“The average of “ + number1 + ” ” + number2 + ” ” + number3 + ” is ” + average);
}
}
1.23456e2表示1.23456×100
数值数据运算符:加+、减-、乘*、除/、求余%
简介赋值运算符:+=、-=、*=、/=、%=
i+=2表示i=i+2
i-=2表示i=i-2
i*=2表示i=i*2
i/=2表示i=i/2
i%=3表示i=i%3
++i表示:先计算i=i + 1,再使用i
i++表示:先使用i,再计算i=i + 1
--i表示:先计算i=i - 1,再使用i
i—表示:先使用i,再计算i=i - 1
作者: wuyadu 时间: 2015-2-5 14:15
第二章 第二篇
System.currentTimeMillis()返回UNIX时间戳
注:UNIX时间戳是指从GMT1970年1月1日00:00:00开始到当前时刻的毫秒数
显示当前系统时间:
ShowCurrentIme.java
public class ShowCurrentTime {
public static void main(String[] args) {
//获取当前时间戳
long totalMilliseconds=System.currentTimeMillis();
//计算总秒数
long totalSeconds=totalMilliseconds/1000;
//计算当前时间秒数
long currentSecond=totalSeconds%60;
//计算总分钟数
long totalMinutes=totalSecond/60;
//计算当前时间的分钟
long currentMinutes=totalMinutes%60;
//计算总小时数
long totalHours=totalMinutes/60;
//计算当前时间的小时
long currentHour=totalHours%24;
//显示结果
System.out.println(“Current time is “+currentHour+”:”+currentMinute+”:”+currentSecond+” GMT”);
}
}
数值转换
将消费为类型的变量转换为大范围类型的变量成为拓宽类型(widening a type)
将大范围类型的变量转换为小范围类型的变量称为缩窄类型(narrowing a type)
拓宽类型不需要显示转换,可以自动执行转换;缩窄类型必须显示完成。
类型转换的语法要求:目标类型发在括号内,紧跟其后的是要转换的变量名或值。
double c = 1.5;
int d = (int)c; /* 1.5转换为int时将小数点后面截去,计算结果为1 */
System.out.println(“c is ” + c + “ , and d is ” + d);
// 显示结果为 c is 1.5, and d is 1
System.out.println((double)1/2); /* 1是int类型,计算时自动转换为double型,显示结果为0.5 */
System.out.println(1/2); /* 计算结果为0.5,int类型小数点后忽略,显示结果为0 */
增值税价税计算器:
PriceTax.java
import java.util.Scanner;
public class PriceTax {
public static void main(String[] arg) {
scanner input = new Scanner(System.in);
system.out.print(“Enter purchase amout: ”);
// 从显示器获取一个价内税金额
double purchaseAmount = input.nextDouble();
double ctax, tax, price;
ctax = purchaseAmount * 0.06;
tax = (int)(ctax * 100) / 100.0;
price = purchaseAmount – tax;
System.out.println(“Sales tax is ” + tax);
System.out.println(“Price is ” + price);
}
}
作者: wuyadu 时间: 2015-2-5 14:17
第二章 第三篇
字符型数据类型char 可将Unicode编码或任意一种数值类型转换为字符数据;也可以将字符型数据赋值给数值型数据。
1:浮点型数据转化为字符型,现将浮点型数据转化为整形数据,再按整形数转换为字符型。
2:字符型数据转化为数值型,将字符型数据转化为Unicode码,再将Unicode码转换为某个特定数值。
当字符对应unicode码在一个字节范围内时,无需显式转换,如\uFFF4:
Byte b = (byte)‘\uFFF4’;
Java支持Unicode编码,数据长度16比特,共65536个字符。用\u开头的4位16进制数表示,范围从‘\u0000’到‘\uFFFF’。如“欢迎”的Unicode码为“\u6B22\u8FCE”
Unicode码包含ASCII码(美国标准信息交换码)128个字符代码从‘u\0000’到‘u0007F’
Char letter = ‘A’;
Char letter = ‘\u0041’;
两个语句都是将字符A赋值给char
System.out.println(++letter); //显示字符B
int i = ‘2’ + ‘3’; //(int)’2’ 表示50,(int)’3’表示51
System.out.println(“i is ” + i); //结果为I is 101
int j = 2 + ‘a’; //(int)’a’ 表示97
System.out.println(“j is ” + j); //结果 j is 99
System.out.println(j + “ is the Unicode for character ” + (char)j); //显示99 is the Unicode for character c
Java转义字符 名称 Unicode
\b 退格键 \u0008
\t Tab键 \u0009
\n 换行符号 \u000A
\f 进纸 \u000C
\r 回车键 \u000D
\\ 反斜杠 \u005C
\’ 单引号 \u0027
\” 双引号 \u0022
作者: wuyadu 时间: 2015-2-9 17:00
第二章 第四篇
字符串类型(String)
与System类、JOptionPane类、Scanner类一样,是一个Java库中欲定义的类。String类是一个引用类型(referencetype)。
如果操作数之一是字符串,加号就是连接运算符。
如果操作数之一不是字符串,非字符串值先转换为字符串在与另一字符串连接起来。
如果操作数都不是字符串,加号就是加法运算符。
便捷运算符+=也可用于字符串连接。
String message = “Welcome to ” + ”Java”; //Welcome to Java
String message1 = “Chapter” + 2; //Chapter2
Message += “ and Java is fun ”; //message = “welcome to Java and Java isfun”
从控制台读取字符串,需要用到Scanner对象的next()方法、nextLine方法
next()方法:读取以空白字符结束的字符串(即’‘、’\t’、’\f’、’\r’或’\n’)
nextLine()方法:读取一正行文本
Scanner input = new Scanner(System.in);
System.out.println(“Enter three string: ”);
String st1 = input.next();
String st2 = input.next();
String st3 = input.next();
System.out.println(“Enter a string again: ”);
String st4 = input.nextLine();
System.out.println(“st1 is “ + st1);
System.out.println(“st2 is “ + st2);
System.out.println(“st3 is “ + st3);
System.out.println(“st4 is ” + st4);
//Enter a string: Welcome to Java<CR>
//Enter a string again: Java isfun<CR>
//st1 is Welcome
//st2 is to
//st3 is Java
//st4 is “Java is fun”
任何Java类都可以将变量表示为引用类型,详见第8章。
不要在nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()、nextDouble()和next()之后使用nextLine(),那样可能会出现想不到的错误,详见9.7.3
将字符串值转换为数字值
将一个String转换为Value,使用Integer类的parseInt方法
IntintValue = Integer.parseInt(intString);
如:IntintValue = Integer.parseInt(“12345”);
将一个String转换为double,使用Double类的parseDouble方法
double doubleValue =Double.parseDouble(doubleString);
如:double doubleValue =Double.parseDouble(“123.456”);
关于注释
行注释://注释
块注释:/*注释*/
前面两种方法主要用于注释方法中的某一步,当要注释整个类或方法时,可以使用javadoc注释
Java文档注释(javadoccomment):以/**注释*/结尾。它能被JDK的javadoc命令提取出来,放入一个HTML文件。详见java.sun.com/j2se/javadoc
关于命名
1、尽量多使用小写字母命名;当一个名中需要用到将多个单词连在一起,第二个单词开始,每个单词的首字母大写。如:radius、showInputDialog
2、类名中的每个单词的首字母大写,同时必须注意不能与Java库中已使用的名字同名。如:Math
3、全部大写的常量名,单词间用下划线连接。如:PI、MAX_VALUE
4、尽量用完整的单词表示标识符,避免用缩写。如:用numberOfStudents,不用numOfStudents。
关于空格和缩进
1、二元运算符两边各加一个空格
2、嵌套内的子嵌套开头比外层嵌套缩进2格
3、比较好的块的头尾有次行(next-line)风格和行尾(end-of-line)风格,但二者不要混用
关于程序设计时的错误
1、语法错误(syntexerror)或编译错误(compile error):编译过程中出现,由代码结构体中的错误引发。如:拼写错误,头尾括号不对应等。
2、运行错误(runtimeerror):引起程序非正常中断的错误。如:输入错误,除0等。
3、逻辑错误(logicerror):也成为臭虫(bug),指程序没有按预期的方式执行时产生的错误。
查找和改正错误的过程成为调试(debugging),对于短小的程序通常可以通过各种方法逐步缩小范围的方法查找错误,复杂或庞大的程序最有效的调试方法还是使用调试工具。
作者: wuyadu 时间: 2015-2-9 17:03
第二篇 第五篇
从输入对话框获取输入
1、用JOptionPane.showInputDialog(x)方法:
String input =JOptionPane.showInputDialog(“Enter an input:”);
//在对话框Input中的录入栏录入数据,点击OK接受,Cancel放弃并关闭对话框。
2、用语句JOptionPane.showInputDialog(null,x, y, JOptonPane.QUESTION_MESSAGE);
Stringinput = JOptionPane.showInputDialog(null, “Enter an input: ”, “Input DialogDemo”, JOptionPane.QUESTION_MESSAGE);
使用对话框计算贷款
ComputeLoanUsingInputDialog.java
Import javax.swing.JOptionPane;
public class ComputeLoanUsingInputDialog {
publicstatic void main(String[] args) {
// 显示一个输入对话框,并读取年利率
StringannualInterestRateString = JOptionPane.showInputDialog(“Enter yearly interestrate, for example 8.25:”);
// 转换读取年利率类型
doubleannualInterestRate = Double.parseDouble(annualInterestRateString);
// 计算月利率
doublemonthlyInterestRate = annualInterestRate / 1200;
// 显示一个输入对话框,读取年数
StringnumberOfYearsString = JOptionPane.showInputDialog(“Enter number of years as aninterger, \nfor example 5:”);
// 转换读取年数类型
IntnumberOfYears = Integer.parseInt(numberOfYearsString);
// 显示一个输入对话框,输入贷款额
StringloanString = JOptionPane.showInputDialog(“Enter loan amount, for example12000.95:”);
// 转换读取贷款额类型
doubleloanAmount = Double.parseDouble(loanString);
// 计算总额
doublemonthlyPayment = loanAmount * monthlyInterestRate / (1 – 1 / Math.pow(1 +monthlyInterestRate, numberOfYears * 12));
double totalPayment = monthlyPayment *numberOfYears * 12;
// 保留数字格式为小数点后2位
montylyPayment= (int)(monthlyPayment * 100) / 100.00;
totalPayment= (int)(totalPayment * 100) / 100.00;
// 显示结果
Stringoutput = “The monthly payment is “ + monthlyPayment + “\nThe total payment is “+ totalPayment;
JOptionPane.showMessageDialog(null,output);
}
}
欢迎光临 郑州大学上海校友会 (http://zzush.com/) |
Powered by Discuz! X2.5 |