1、关于main 中的String args[] 或者 String[] args
Main是程序的入口,而string[]args是程序启动时所必须带的参数...,用来获取所输入的信息的。举例说明如下:
straul good 和0 1 就是执行Test后输入的参数,后面直接得到返回值。由此可见,args[]是main()函数用来获取启动时候输入的参数的一个数组。
2、变量必须初始化后才能够使用
public class AddSum{
public static void main(String args[]){
int i=0 ,result =0;
for(i=0;i<100;i+=2){
result+=i;
}
System.out.println("result="+result);
}
}
3、对象必须使用 new 关键字来创建对象
4、标识符
由字母、下划线、美元符和数字组成;区分大小写,长度不受限;第一个字符不能是数字,不能是关键字,而且不能是 true , false 和 null ,尽管他们都是java 中的关键字。
5、8种基本数据类型
逻辑类型:boolean ,布尔,只有两个选择:要么是true ,要么是 false
整数类型:byte(1个字节,-128到127),short(2个字节,-32768到32767),int(4个字节,从-2^31 到 2^31-1) ,long (8个字节内存),注意long 常量后面必须有l或者L结尾。
字符类型: char 分配了2个字节内存,与short不同,最高位不是符号位,所以其范围是0~65535。注意,与C语言不同,一定不能用unsigned 来修饰char , char 是无符号的字符类型。
浮点类型:float(4个字节内存) 和 double (8个字节),float 常量后面必须有字母f或F,如7.23F ; 而double 常量后面必须有字母D或d
6、类型转换
8个类型从低到高的排列顺序是 byte -> short -> char -> int -> long -> float -> double
当从低级类型到高级类型,系统自动换算,不用加强制类型转换符;
而从高级到低级时候转换要加强制类型转换符号,具体看手册。
7、关于编译和执行程序
一个java的程序只有两个要求:
(1)程序中必须有 包括 public void main(String agrs[]) 或者 public void main(String[] agrs)这个方法的类;
(2)程序以主类的名字命名。
首先进入java 程序文件所在的目录,如 D:MyJavaProgramHelloWorld 那么命令行下编译java 程序的命令是:javac xxx .java 这里xxx 是java文件的名字
执行Java程序是 java yyy, 这里yyy 是主类的名字
举例如下,源程序如下:
public class Person
{
void speakHello(String s)
{
System.out.println(s);
System.out.println("rnNice to meet you,too! ");
}
}
class Xiti
{
public static void main(String args[])
{
Person zhang = new Person();
zhang.speakHello("Nice to meet you ");
}
}
便可得到下面结果。
8 输入输出数据
(1)输入数据:
使用Scanner 这个类来创建对象读取用户在命令行下输入的数据。如这里新建对象reader
Scanner reader = new Scanner(System.in);
然后使用:next数据类型();来输入数据。
如这里给double 类型 x输入数据:
double x = reader. nextDouble();
输入以用户回车作为结束的标志。
(2)输出数据
用System.out.println()或System.out.print()来输出数据,两者不同之处在于前者输出数据后顺便换行,后者不换行。
另外JDK1.5后,还有和C语言中printf()类似的控制格式输出命令
System.out.printf("%d,%c,%f,%s等",表达式或者数据,变量);
9 运算符
(1) 逻辑运算符
逻辑与 &&
逻辑或 ||
逻辑非 !
(2) 位运算符
按位与 &
按位或 |
按位非 ~
按位 异或 ^
(3)双目运算符
instanceof 用来验证A是否B的子类。
A instanceof B,
10 类
一个java 应用程序就是若干个类所构成的。
类声明的变量被称作对象。
类的定义包括两部分,类声明和类体。 如
class Person //类声明
{
... // 类体
}
class Person就是类声明。 类名的首字母应该大写,若由几个单词合成,那么每个单词的首字母应该大写。
一个java 应用程序或者一个java工程,是由若干个类组成的,可以是一个源文件(即.java文件)也可以是多个源文件。每个源文件都可以有很多个类,但必须的,只能有一个源文件下的一个类里面有main方法,这个类称为主类。所以,成功运行一个工程应该经历两步
第一步,编译所有的源文件;
第二步,运行主类。
全部编译当前目录下所有的源文件,可以用通配符*javac *.java //星号+下标点+java,尽管一个源文件下可以有多个类,但是,我们提倡一个java源文件下只编写一个类。
类使用类体来描述对象的属性和行为。关键是抓住对象的两个方面——属性和行为,即数据和数据上进行的处理方法。
(1)成员变量
类体中的内容可分为两个部分,一方面是变量的声明,这个声明的变量就被称为成员变量。
成员变量可以是Java中任意一种数据类型,包括基本类型和引用类型(数组、对象和接口);
如
class Factory
{
float t ;
Workman zhang;
}
class Workman
{
double x;
}
这里的类Factory声明了两个成员变量,t 和 zhang, t是float类型,而zhang是对象,Workman类所声明的对象。
成员变量的有效范围是整个类内,出了这个类则无效。
成员变量又细分为实例变量和类变量。用关键字static 修饰的变量就是类变量,否则就是实例变量。二者的区别在于三点:
不同对象的实例变量互不相同,改变其中一个对象的实例变量不会改变其他对象的 。
注意:
尽量一行声明一个变量;
名字的单词的首字母使用小写;
尽量见名知意,不要使用m1 ,l1 这种不好笼统难以区分的名字。
(2)方法
方法包括两部分,方法头和方法体
类型 名称 //方法头
{
局部变量声明;
java 语句; //方法体
}
(3)用this 区分成员变量和局部变量
如果成员变量和局部变量重名,那么成员变量被隐藏,即失效。
如果想使用该成员变量,那么则前面加上this. 注意是this 加上一个下标点
成员变量和局部变量有一点比较不同的就是
成员变量有默认值,而局部变量没有,所以必须给局部变量赋初值才能够使用。否则报错。
(4)类的UML图
UML图就是结构图,常用来表示一个系统的静态结构。表示类就是三层结构。
第一层是类名;
第二层是变量层,就是列出类的成员变量及其类型,格式是“变量名字:类型”
第三层就是方法层,格式是“方法名字(参数列表)”
11 构造方法
当一个躯体再完美,你不给他灵魂,他都是毫无生气的。
因此,和基本类型不同,你用类来声明对象后,还不够,还必须创建对象,即为声明的对象分配所拥有的变量,确定他所具有的属性。
这就是构造方法。
当程序用类创建对象时需要使用它的构造方法。构造方法的名字必须与它所在的类名字相同,而且没有类型。
允许一个类中有多个构造方法,但是必须保证他们的参数不同,要么是个数不同,要么是类型不同。
如果你写的类中没有构造方法,那么系统默认给你一个构造方法,该方法无参数,方法体无语句,即完全是一个空白的方法。
举例:
class Point
{
int x ,y ;
Point()
{
x =1 ;
y =1 ;
}
Point( int a ,int b )
{
x =a ;
y=b ;
}
void Point()
{
x =2;
y =5;
}
int Point( int a , int b )
{
x = 2*a; y = 4-b;
}
}
大家可以自己想象这个类中有几个构造方法?
答案是2个。第一个和第二个。后两个都不是,因为构造方法是没有类型的,哪怕是空类型!!
12 创建对象
创建对象包括对象的声明和为对象分配变量。
(1)创建对象
类的名字 对象的名字;
(2)分配变量
对象名字 = new 构造方法;
举例:
class Sing
{
Sing( int a )
{
...
}
...
}
public class Dancing
{
void st()
{
Sing test; //创建对象
test = new Sing(2); //分配变量
}
}