400-616-5551

您所在位置: 首页> 学习课程> JAVA学习笔记——简单的Java程序

JAVA学习笔记——简单的Java程序

发布百知教育 来源:学习课程 2020-02-26

3.1 Java程序型与基本构成

分为两类:Application(应用程序)和Applet(小应用程序)程序

两者结构和运行环境不同。

前者是独立程序,需要执行器(调用虚拟机)来运行。

后者是嵌在HTML网页中的非独立的程序,

  • 由专门的appletViewer来运行
  • 或者由Web 浏览器(调用JAVA虚拟机)来运行

Application程序:

public class App {
   public static void main(String[] args) {
       System.out.println("Hello Java!");
   }
}

注意:

  • class是主体
  • public类名与文件名相同
  • main()的写法是固定的
  • System.out.printprintlnprintf

Applet程序:

import java.awt.*;
import java.applet.*;
import javax.swing.*;

public class HelloWorldApplet extends JApplet {
   public void paint(Graphics g) {
       g.drawString("Hello World", 20, 20)
   }
}

注意:

  • import表示导入
  • extends JApplet表示继承,AppletJApplet都可以
  • paint()方法,表示如何绘制
  • 没有main()方法

该程序不能单独运行,需要HTML文件。

<HTML>
   <HEAD><TITLE>An Applet</TITLE></HEAD>
   <BODY>
       <applet code="HelloWorldApplet.class" width=200 height=40 background=white>
       </applet>
   </BODY>
</HTML>

JAVA程序的基本构成:

package app;
import java.utils.*;
public class App {}
  • package语句(0句或1句):表示package的路径
  • import语句(0句或1句),导入其他类的类库
  • 类定义——class(1或者多个),但是一个文件只能有一个public类(与文件同名)
  1. 类=类头+类体
  2. 类成员=字段(field)+方法(method)
    • 字段(field,属性,变量) 方法(method,函数)
  3. 方法=方法头+方法体

3.2 开发Java程序的基本步骤

程序的编辑、编译与运行:

  • 源程序编辑:可用任一文本编辑器
  • 程序编译:使用JDK中的javac工具
  • 程序运行:使用java工具

Application的编辑、编译与运行:

  • 程序编辑:编辑器——文件名要与public class的类名一致
    • 区分大小写
  • 程序编译——转换为字节码(bytecode)文件,扩展名.class
    • .class文件中包含 java虚拟机的指令)
    • 编译可以使用JDK工具javac.exe
    • javac Hello.java
  • 程序的运行——执行 .class文件中的指令的过程。
    • java Hello
    • (注意:不要写成 java Hello.class, 因为这里需要的是类名,不是文件名)

设定path和classpath:

  • 设定path和classpath
    • 如win7中:我的电脑—属性—高级—性能—环境变量
    • 如win8中:这台电脑—属性—高级—环境变量
    • set path=.;c:\jdk\bin;…
    • 前者是命令(javacjava)的路径; 后者是所要引用的类的路径
    • 可以在命令行上设定
    • 也可以在系统环境中设定
  • javacjava命令行上使用-classpath(或-cp)选项可以引用别的库
    • javac –cp libxx.jar 源文件名.java
    • java –cp libxx.jar 类名

使用package时的编译:

java培训班

  • 文件及路径一致

  • 程序中使用package语句

  • 使用import语句

  • 编译及运行

javac -d classes src\edu\pku\tds\ui\*.java src\edu\pku\tds\util\*.java src\edu\pku\tds\*.java

java -cp classes edu.pku.tds.PackageTest

Applet的编辑、编译与运行:

提示:Applet已过时,可以不学

  • Java Applet程序必须嵌入到HTML中,并由负责解释HTML文件的WWW 浏览器充当解释器,解释执行程序。
  • Java Applet在WWW中引入了动态交互的内容。
    • 使用<applet>标签:
    1. 源程序的编辑和编译。
    2. 在HTML文件中嵌入Applet。
<applet code="HelloWorldApplet.class" width=200 height=40 background=white>

用appletViewer运行Applet:

appletViewer HelloWorldApplet.html

用浏览器浏览applet:

  • 首先下载java(JRE)并安装
  • 启用浏览器中Java
    • 控制面板——程序--java——安全——中,并启用浏览器中的Java
  • .class.html文件放到www服务器上,然后用浏览器访问
    • 从Java8开始,Applet的运行受到更严格的限制
    • 如不能在本机文件(file://)中运行applet,必须在http://https://
  • 更多的Applet替代方案
    • Flash,SilverLight,Javascript等

其他几个工具:

  • 主要的工具
    • javac 编译
    • java 运行(控制台及图形界面程序)
    • javaw 运行图形界面程序
    • appletViewer 运行applet程序
  • 另外常用的几个工具
    • jar 打包工具
    • javadoc 生成文档
    • javap 查看类信息及反汇编

使用jar打包:

  1. 编译 javac A.java
  2. 打包 jar cvfm A.jar A.man A.class
    • c表示创建(create), v表示显示详情(verbose), f表示指定文件名, m表示清单文件
  3. 运行 java -jar A.jar
  • 其中A.man 是清单文件(manifest), 内容如下:
    • Manifest-Version: 1.0
    • Class-Path:.
    • Main-Class: A
  • 清单文件可以任意命名,常见的是用MANIFEST.MF

使用JavaDoc生成文档:

javadoc –d 目录名 xxx.java

  • /** */ 这其中可以用以下标记
    • @author 对类的说明 标明开发该类模块的作者
    • @version 对类的说明 标明该类模块的版本
    • @see 对类、属性、方法的说明 参考转向,也就是相关主题
    • @param 对方法的说明 对方法中某参数的说明
    • @return 对方法的说明 对方法返回值的说明
    • @exception 对方法的说明 对方法可能抛出的异常进行说明

使用javap:

  • 使用javap查看类的信息
    • javap 类名
  • 使用javap反汇编
    • javap –c 类名

3.3 程序中进行输入与输出

应用程序(Java Application)的输入输出可以是文本界面,也可以是图形界面。

小程序(Java Applet)则只能是图形界面。

每种界面都可以有输入和输出。

文本界面的输入输出:使用Scanner类

  • 使用java.util.Scanner
    • 用其nextInt()方法
    • 还有nextDouble()
    • next()得到下一个单词
import java.util.Scanner;

public class App {
   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       System.out.print("请输入一个数字\n");
       int a = sc.nextInt();
       System.out.printf("%d的平方是%d\n", a, a*a);
   }
}

更早方式:使用in及out

  • java.io包
  • System.in.read()
  • System.out.print()println、printf
import java.io.*;
//注意try...catch...
public class App {
   public static void main(String[] args) {
       char c = ' ';
       System.out.print("Please input a char: ");
       try {
           c = (char) System.in.read();
       } catch (IOException e) {
       }
       System.out.println("You have entered: " + c);
   }
}

输入输出行:

public static void main(String[] args) {
String s = "";
System.out.print("Please input a line: ");
try{
BufferedReader in = new BufferedReader(
new InputStreamReader( System.in ) );
s = in.readLine();
}catch(IOException e){}
System.out.println("You have entered: " + s );
}

输入输出数字:

  • Integer.parseInt(s)
  • Double.parseDouble(s)
public static void main(String[] args) {
String s = "";
int n = 0;
double d = 0;
try{
BufferedReader in = new BufferedReader(
new InputStreamReader( System.in ) );
System.out.print("Please input an int: ");
s = in.readLine();
n = Integer.parseInt( s );
System.out.print("Please input a double: ");
s = in.readLine();
d = Double.parseDouble( s );
}catch(IOException e){}
System.out.println("You have entered: " + n + " and " + d );
}

图形界面输入与输出:

  • 在图形界面下,可以:
    • 使用文本框对象(TextField)获取用户输入的数据。
    • 使用标签对象(Label)或文本框对象输出数据。
    • 使用命令按纽(Button)来执行命令。

  • Java Application需要首先创建自己的图形界面。
  • 通过创建一个Frame创建自己的用户界面,在构建AppFrame时,设定 该Frame的大小,并用setVisible(true)方法显示出来。
import java.awt.*;
import javax.swing.*;

public class App {
   public static void main(String[] args) {
       new AppFrame();
   }
}

class AppFrame extends JFrame {
   JTextField in = new JTextField(10);
   JButton btn = new JButton("求平方根");
   JLabel out = new JLabel("用于显示结果的标签");

   public AppFrame () {
       setLayout(new FlowLayout());
       getContentPane().add(in);
       getContentPane().add(btn);
       getContentPane().add(out);
       btn.addActionListener( e-> {
           String s = in.getText();
           double d = Double.parseDouble(s);
           double sq = Math.sqrt(d);
           out.setText(d + "的平方根是" + sq);
       });
       setSize(400, 100);
       setDefaultCloseOperation(DISPOSE_ON_CLOSE);
       setVisible(true);
   }
}

Applet输入输出:

  • init()
    • 处理事件
    • add(xxxx)加入对象
    • btn.addActionListener
  • actionPerformed()函数
    • 具体处理事件

下面使用新旧两种写法:

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class  Applet extends JApplet {
JTextField in = new JTextField(10);
JButton btn = new JButton("求平方根");
JLabel out = new JLabel("用于显示结果的标签");

   // 新写法
public void init() {
setLayout( new FlowLayout() );
add( in );
add( btn );
add( out );
btn.addActionListener( e->{
String s = in.getText();
double d = Double.parseDouble( s );
double sq = Math.sqrt(d);
out.setText( d + "的平方根是" + sq );
});
}
   
   //旧写法
   public void init()
{
setLayout( new FlowLayout() );
add( in );
add( btn );
add( out );
btn.addActionListener( new BtnActionAdapter() );
}

class BtnActionAdapter implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
String s = in.getText();
double d = Double.parseDouble( s );
double sq = Math.sqrt(d);
out.setText( d + "的平方根是" + sq );
}
}
}

同时作为 Application和Applet 的程序:

三个条件:

  • 是Applet的派生
  • 含有main()
  • main()中创建一个用户界面,并将这个Applet加入
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;

public class AppApplet extends JApplet {
public static void main( String args[] ) {
JFrame frame = new JFrame();
AppApplet app = new AppApplet();
app.init();
frame.getContentPane().add( app );
frame.setSize( 400,100 );
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
}

JTextField in = new JTextField(10);
JButton btn = new JButton("求平方根");
JLabel out = new JLabel("用于显示结果的标签");

public void init()
{
setLayout( new FlowLayout() );
add( in );
add( btn );
add( out );
btn.addActionListener( e->{
String s = in.getText();
double d = Double.parseDouble( s );
double sq = d * d;
out.setText( d + "的平方根是" + sq );
});
}
}

3.4 Java开发工具

开发环境:

  1. 直接使用JDK
    • Javac, java, appletViewer
  2. 文本工具+调用JDK命令
    • SublimeText, Notepad++, UltraEdit , EditPlus
    • JCreator, Kawa及Freejava
  3. 集成开发环境(IDE: integrated development environment)
    • Eclipse, NetBeans (这两款用得很广)
    • Jdeveloper(Oracle), VisualAge for Java(IBM)
    • BlueJ (用于教学)




java培训班:http://www.baizhiedu.com/java2019

 






上一篇:Python地信专题 | 基于geopandas的空间数据分析

下一篇:it培训班出来的学员怎么样?IT培训学校好么?

相关推荐

关闭

立即申请

www.baizhiedu.com