一、程序中的变量必须先定义后使用,变量的有效范围在定义它的语句所在的大括号内部(包括其中嵌套的大括号内部),一旦出了这个范围变量就失效了。
public class Scope
{
public static void main(String[] args)
{ int outer=1;
{
int inner=2;
System.out.println("inner="+inner);
System.out.println("outer="+outer);
// int outer=5;
}
int inner=3;
System.out.println("inner="+inner);
System.out.println("outer="+outer);}}
还有其他一些称为类变量的变量,当这种变量以一种特殊的方式声明之后,他们会有相当长的生存周期,类 Math标准库中的变量 PI和 E就是其中两例。只要程序在执行,他们就始终存在。还有一些变量形成了一个类对象的一部分,称为实例变量。
二、数学函数和常量:
Java提供了一系列的方法,支持作为作为标准库的一部分而存储在包 java.lang中的数学函数,并且在程序中自动应用它们,
支持不同其他数学函数的方法在类 Math中作为 Static方法实现,因此如果想引用一个特定的函数,可以在程序中写下 Math和一个圆点,然后是使用的方法名,例如
Math.sqrt(aNumber),
方法 函数 参数类型 结果类型
abs(arg) 求绝对值 int,long,float或 double 与参数类型相同
max(arg1,arg2) 返回较大的值,两者类相同 int long,foat或 double与参数类型相同
min(arg1,arg2) 返回较小的值,两者类相同 int long,foat或 double与参数类型相同
ceil(arg) 返回大于或等于参数的最小整数 double double
floor(arg)返回小于或等于参数的最大整数 double double
round(arg)计算与参数值最接近的整数 float或 double 对于 float为 int,double为 long
rint(arg)计算与参数值最接近的整数 double double
IEEEremainder计算 arg1除以 arg2得到的余数 均为 double double
(arg1,arg2)
IEEEremainder()与 %的区别:
IEEEremainder()方法用以从 arg1中获得余数,这个余数是 arg1 除以 arg2的整数倍的结果,而这个倍数是指与 arg1/arg2结果最接近的整数值。与 %不同,在有些情况,这两种运算得到不同的结果。
9.0%5.0=4.0,而 Math,IEEEremainder(9.0,5.0)得到的结果是 -1.0.
Math类还为 e和 π定义了 double类型的值,可以采用 Math.E和
Math.PI的方法对两者进行访问
public class MathCalc
{
public static void main(String[] args)
{
double radius=0.0;
double circlearea=100.0;
int feet=0;
int inches=0;
radius=Math.sqrt(circlearea/Math.PI);
feet=(int)(Math.floor(radius));
inches=(int)Math.round(12.0*(radius-feet));
System.out.println("the radius of a circle with area"+circlearea+"square feet
is\n"+feet+"feet"+inches+"inches");
}
}
三、数组运算符:
与 C和 C++不同,Java中数组内存单元的分配必须先用 new运算符建立数组,然后把建立的数组赋给变量:
int a[]=new int[10];
另一种等价形式:
int[]=a;
a=new int[10];( int[] a=new int[10])
建立了共包括 10个存储单元的数组,并把它赋给数组 a,随后通过下标来引用此数组,数组下标也是从 0开始四、数据类型类:
Java的基本数据类型,int,double,char,long等。利用这些基本数据类型来定义简单的变量和属性,但当需要完成一些基本数据类型量的变换和操作,如将一个字符串转化为整数或浮点数,就需要使用数据类型类的相应方法:每一个数据类型类都对应了一个基本数据类型,不同的是数据类型类是一个类,有自己的方法:
数据类型类 基本数据类型
Boolean boolean
Character char
Double double
Float float
Integer integer
Long long
以 Integer为例,介绍其方法和作用,其他数据类型类中的方法及作用与 Integer相似:
( 1) Integer中定义了 MAX_VALUE域和 MIN_VALUE两个整型属性
( 2)构造函数,public Integer(int value)和 public Integer(String s)分别利用一个基本数据类型 int的量和一个字符串对象来生成一个 Integer对象。
( 3)数据类型转换方法分别将当前对象所对应的 int量转换成其他基本数据类型的量并返回转换后的值:
public double doubleValue()
public int intValue()
public long longValue()
(4)字符串与 int量相互转化的方法:
1,public String toString()方法将当前 Integer对象对应的 int量转化成字符串
2,public static int parseInt(String s)方法也是类的方法,将一个字符串转化成一个 int量,
如,int i=Integer.parseInt(“123”)
3,public static Integer valueOf(String s)方法也是类的方法,将一个字符串转化成 Integer对象,再调用这个对象的 intValue()方法返回其对应的 int数值,其实际作用与上一语句相同,但在处理过程中会生成一个临时的 Integer对象。
int i= Integer.valueOf(“123”).intValue()
float f=Float.valueOf(“13.5”).floatValue();
五、循环中的跳转语句:
为了提高程序的可靠性和可读性,Java语言不支持无条件跳转的 goto语句,循环中常用的跳转语句有两个,continue语句和 break语句。
1,continue语句的两种形式:
a、不带标号的 continue:终止当前这一轮循环,跳过本轮循环剩余的语句
int ;
for(i=0;i<5;i++)
{
if(i==3)
continue;
System.out.print(i+”\t”);
}
System.out.println(“i=“+i);
b,continue 标号名:使程序的流程直接转入标号标明的循环层次
label_continue:for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if(i==j)
continue label_continue;
System.out.print(i*5+j+”\t”);
}
System.out.println(“i=“+I);
}
2,break语句的两种形式:
a、不带标号的 break:从所在的 switch分支或最内存的循环体中跳转出来,执行分支或循环体后的语句
int ;
for(i=0;i<5;i++)
{
if(i==3)
break;
System.out.print(i+”\t”);
}
System.out.println(“i=“+i);
b,break 标号名;标号标志着一个语句块,执行 break语句就从这个语句块中跳出来,流程进入该语句块后面的语句:
label_continue:for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if(i==3)
break label_continue;
System.out.print(i*5+j+”\t”);
}
System.out.println(“i=“+I);
}
六,定义和使用 java的方法:
从技术上讲,Java中没有函数,只有方法(成员函数)。这意味着必须把所有的函数代码放在类声明中。与 C++相比,java中 没有全局函数。但是,在 java中鼓励使用类方法,而反对使用实例方法。
类方法是用 static声明,类似于 C++中的静态成员函数。类方法的用法类似于全局函数。不必与单个对象相关联,使用时无须考虑是否实例化了特定的对象。
1、方法的定义:
[修饰符 ] 返回值类型 方法名(参数列表)
Throws 例外名 1,例外名 2,………
{ 方法体,
局部变量声明 ;
语句序列 ;}
2、方法的是使用:
Java语言中定义的方法有两类:
( 1)需要程序书写专门的调用命令来调用的方法,称为程序调用方法 。
大部分用户自定义的方法都属于程序调用方法
( 2)运行过程中系统自动调用的方法,称为系统调用方法 action(),paint(),init()
系统只能自动调用它“认识”的方法,即系统只能调用他事先定义好的方法。这些方法属于 java类库中的各种已定义好的类,java应用程序通过创建这些类的子类来继承这些系统“认识”的方法,然后通过重载这些方法使他们完成用户程序的特定设计功能。例:系统自动调用 Applet类的 action()方法,但是 Applet类的
action()方法中没有任何代码。系统类库的工作仅仅到接收消息并提供合适的方法调用时间为止,具体如何处理这个消息,要交给应用程序,即对从 Applet类中继承的 action()方法重载。
注:重载方法与自定义方法不同,重载方法必须与其父类相应方法有完全相同的名字、返回类型、参数列表、方法修饰符和例外列表,这样才能保证系统仍然能够“认识”重载后的方法从而在合适的时间调用它七,TextField类,创建一个单行文本输入的组件全称,java.awt.TextField
扩展,TextComponent->component->object
继承了 TextComponent类的所有方法,包括 setText()和 getText().
public String getText(),用户在文本框中输入的信息,可以通过
getText()方法获得,这个方法的返回值是一个字符串
public void setText(String t):如果希望在程序中对文本区域显示的内容赋值。
public void setEditable(boolean t):某些情况下需要将文本设为不能编辑的,不需要也不允许用户随意改动,则设置为不可编辑状态
( false)