我的第一个JAVA程序
以下我们通过一个简单的实例来展示Java编程,创建文件HelloWorld.java(文件名需与类名一致),代码如下
实例
public class HelloWorld{public static void main(String[] args){System.out.println('Hello World')
}
}
注:Srting args[] 与Srting[] args 都可执行,但推荐使用String[] args, 这样可以避免歧义和误读
运行以上实例,输出结果如下:
javac HelloWorld.java
java HelloWorldHello World
执行命令解析:
以上我们使用了两个命令javac和java
javac后面跟着的是java文件的文件名,例如HelloWorld.java。 该命令用于将java源文件编译为class字节码文件,如: javac.HelloWorld.java。
运行javac命令后,如果成功编译没有错误的话,会出现一个HelloWorld.class的文件。
java后面跟着的是java文件中的类名,例如HelloWorld就是类名,如java HelloWorld。
注意:java命令后面不要加.class
JAVA简介
Java是由SUN公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。
Java基础语法
一个Java程序可可以认为是一系列对象的集合,而这些对象通过彼此的方法来协同工作。下面简要介绍下类 ,对象,方法和实例变量的概念。
对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色,名字,品种,行为等
类:类是一个模板,它描述一类对象的行为和状态
方法:方法就是行为,一个类可以有很多方法,逻辑运算,数据修改以及所有动作都是在方法中完成的
实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
下面将逐步介绍如何保存,编译以及运行这个程序:
打开代码编辑器,把上面的代码添加进去;
把文件名保存为:HelloWorld.java
打开cmd命令窗口,进入目标文件所在的位置,假设是C:\
在命令行窗口输入javac.HelloWorld.java 按下回车编译代码。如果代码没有错误,cmd命令提示符会进入下一行(假设环境变量都设置好了)。
在键输入 java HelloWorld按下回车就可以运行程序了
你将会在窗口看到 Hello World
基本语法
编写Jav程序时,应该注意一下几点:
大小写敏感:Java大小写敏感的,这就意味着标识符Hello与hello是不同的。
类名:对于所有的类名来说, 类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如MyFirst
方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
源文件名:源文件名必须和类名相同。当文件保存的时候,你应该使用类名作为文件名保存(切记Java是大小写铭感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。
主方法入口: 所有的Java程序由 public static void main (Srting [] args) 方法开始执行
JAVA标识符
Java所有的组成部分都需要名字。类名,变量名以及方法名都称为标识符。
关于Java标识符,有以下几点注意:
- 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
- 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
- 关键字不能用作标识符
- 标识符是大小写敏感的
- 合法标识符举例:age、$salary、_value、__1_value
- 非法标识符举例:123abc、-salary
Java修饰符
像其他语言一样,Java可以使用修饰符来修饰类中方法和属性,主要有两类修饰符:
访问控制修饰符:default,public, protected,private
非访问控制修饰符: final, abstract,static,synchroized
Java变量
Java中主要有如下几种类型的变量
局部变量
类变量(静态变量)
成员变量(非静态变量)
Java数组
数组是储存在堆上的对象,可以保存多个同类型变量。在后面的章节中,我们将会学到如何申明,构造以及初始化一个数组。
Java枚举
Java 5.0引入了枚举,枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的bug。
例如,我们为果汁店设计一个程序,它将限制果汁为小杯、中杯、大杯。这就意味着它不允许顾客点除了这三种尺寸外的果汁。
class FreshJuice {enum FreshJuiceSize{ SMALL, MEDIUM , LARGE }FreshJuiceSize size;
}public class FreshJuiceTest {public static void main(String[] args){FreshJuice juice = new FreshJuice();juice.size = FreshJuice.FreshJuiceSize.MEDIUM ;}
}
Java关键字
下面列出了Java关键字。这些保留字不能用于常量,变量,和任何标识符的名称。
Java注释
public class HelloWorld {/* 这是第一个Java程序* 它将输出 Hello World* 这是一个多行注释的示例*/public static void main(String[] args){// 这是单行注释的示例/* 这个也是单行注释的示例 */System.out.println("Hello World"); }
}
Java空行
空白行或者有注释的行,Java 编译器都会忽略掉。
继承
在 Java 中,一个类可以由其他类派生。如果你要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么你可以将新创建的类继承该类。
利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(sub class)。
接口
在Java中,接口可理解为对象间相互通信的协议,接口在继承中扮演着很重要的角色。
接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。
Java 对象和类
Java作为一种面向对象语言,支持以下基本概念
多态
继承
封装
抽象
类
对象
实例
方法
重载
本节我们重点研究对象和类的概念
对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为, 例如,一条狗是一个对象,它的状态有: 颜色,名字,品种,摇尾巴,叫,吃等。
类: 类是一个模板,它描述一类对象的行为和状态
创建对象
对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:
public class Puppy{public Puppy(String name){//这个构造器仅有一个参数:nameSystem.out.println("小狗的名字是 : " + name ); }public static void main(String[] args){// 下面的语句将创建一个Puppy对象Puppy myPuppy = new Puppy( "tommy" );}
}
编译并运行上面的程序,会打印出下面的结果:
小狗的名字是 : tommy
访问实例变量和方法
/* 实例化对象 */
Object referenceVariable = new Constructor();
/* 访问类中的变量 */
referenceVariable.variableName;
/* 访问类中的方法 */
referenceVariable.methodName();
实例
public class Puppy{int puppyAge;public Puppy(String name){// 这个构造器仅有一个参数:nameSystem.out.println("小狗的名字是 : " + name ); }public void setAge( int age ){puppyAge = age;}public int getAge( ){System.out.println("小狗的年龄为 : " + puppyAge ); return puppyAge;}public static void main(String[] args){/* 创建对象 */Puppy myPuppy = new Puppy( "tommy" );/* 通过方法来设定age */myPuppy.setAge( 2 );/* 调用另一个方法获取age */myPuppy.getAge( );/*你也可以像下面这样访问成员变量 */System.out.println("变量值 : " + myPuppy.puppyAge ); }
}
编译并运行上面的程序,产生如下结果:
小狗的名字是 : tommy
小狗的年龄为 : 2
变量值 : 2
源文件声明规则
在本节的最后部分,我们将学习源文件的声明规则。当一个源文件中定义多个类,并且还有import和package语句时,要特别注意这些规则。
一个源文件中只能有一个public类
一个源文件可以有多个非public类
源文件的名称应该和public的类名保持一致。例如:源文件中public的类名是Employee,那么源文件名为Employee.java。
类有若干种访问级别,并且类也分不同的类型:抽象类和 final 类等。这些将在访问控制章节介绍。
除了上面提到的几种类型,Java 还有一些特殊的类,如:内部类、匿名类
- 如果一个类定义在某个包中,那么 package 语句应该在源文件的首行。
- 如果源文件包含 import 语句,那么应该放在 package 语句和类定义之间。如果没有 package 语句,那么 import 语句应该在源文件中最前面。
- import 语句和 package 语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。