Java核心技术卷I (11版)第二章学习
Welcome/Welcome.java
public class Welcome
{
public static void main(String[] args)
{
String greeting = "Welcome to Core Java!";
System.out.println(greeting);
for (int i=0;i < greeting.length(); i++)
System.out.print("=");
Syetem.out.println();
}
}
- 主函数:
public static void main()
String
是字符串类。String[] args
: 这是方法的参数,它是一个字符串数组,可以用来从命令行接收参数。public static void main(String[] args)
: 这是Java程序的主入口点。当你运行一个Java程序时,JVM(Java虚拟机)会查找并执行这个方法。System.out.print()
: 此方法仅用于输出信息到控制台,但不会在输出的内容后添加换行符。如果你想在输出的内容后面添加一个换行符,你需要手动添加\n
。System.out.println()
: 此方法不仅输出信息到控制台,而且会在输出的内容后自动添加一个换行符。- 在JDK11中,单个源文件不用javac命令
ImageViewer/ImageViewer.java
import java.awt.*;
import java.io.*;
import javax.swing.*;
/**
A program for viewing images.
**/
public class ImageViewer
{
public static void main(String[] args)
{
EventQueue.invokeLater(() -> {
var frame = new ImageViewerFrame();
frame.setTitle("ImageViewer");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
});
}
}
/**
A frame with a label to show an image.
**/
class ImageViewerFrame extends JFrame
{
private static final int DEFAUL_WIDTH = 300;
private static final int DEFAUL_HWIGHT = 400;
public ImageViewerFrame()
{
setSize(DEFAUL_WIDTH, DEFAUL_HEIGHT);
// use a label to display the images
var label = new JLabel();
add(label);
// set up the file chooser
var chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
// set up the menu bar
var menuBar = new JMenuBar();
setMenuBar(menubar);
var menu = new JMenu("File");
menuBar.add(menu);
var openItem = new JMenuItem("Open");
menu.add(openItem);
openItem.addActionListener(event -> {
int result = chooser.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION)
{
String name = chooser.getSelectedFile().getPath();
label.setIcon(new ImageIcon(name));
}
});
var exitItem = new JMenuItem("Exit");
menu.add(exitItem);
exitItem.addActionListener(event -> System.exit(0));
}
}
EventQueue.invokeLater(() -> {
: 使用EventQueue.invokeLater
方法确保GUI组件在事件调度线程中被创建和更新。这是为了确保线程安全,因为在Swing中,所有的GUI操作都应该在事件调度线程中进行。import java.awt.*;
是Java编程语言中的一条导入语句,用于导入Java的抽象窗口工具包(Abstract Window Toolkit,简称AWT)。AWT是Java的一个核心图形用户界面(GUI)工具包,用于创建窗口、按钮、文本框等图形用户界面元素。import java.io.*;
是Java编程语言中的一条导入语句,用于导入Java的输入/输出(I/O)包,即java.io包。java.io包包含了一系列用于文件和流的类,使得程序能够读取和写入数据。import javax.swing.*;
是Java编程语言中的一条导入语句,用于导入Java的Swing包。Swing是Java的一个图形用户界面(GUI)工具包,用于创建桌面应用程序的用户界面。- final是Java中的一个关键字,可以用来修饰变量、方法和类。(后面再学一遍,感觉有问题)
- 当final修饰变量时,表示该变量的值是不可变的。具体来说:
- 如果一个变量被声明为final,则其值只能被赋值一次,一旦赋值后就不能再改变。
- 对于基本数据类型和引用类型,final变量的初始化值是固定的,不能再被重新赋值。
- 对于引用类型的变量,final只保证引用的不可变性,而不是引用所指向的对象不可变。也就是说,final变量所指向的对象的内容是可以改变的,但引用本身始终指向同一个对象。
- 当final修饰方法时,表示该方法不能被子类重写(override)。如果一个方法被声明为final,则子类无法继承该方法,也无法通过重写来实现相同的功能。
- 当final修饰类时,表示该类不能被继承。如果一个类被声明为final,则其他类不能继承该类,也不能继承其任何成员方法。
- 当final修饰变量时,表示该变量的值是不可变的。具体来说:
var
是许多编程语言中的一个关键字,用于声明一个变量并为其分配一个值。它用于声明变量的类型和初始化值。- 窗口菜单添加:按照
JMenuBar
,JMenu
,JMenuItem
依次添加即可,添加前使用var
关键字进行变量创建。
JShell
- Java9引入了另一种使用Java的方法,即JShell。他提供了“读取-计算-打印循环”。
- 启动JShell:在终端窗口中键入jshell
$1
表示这个结果可以用于将来的计算。- tab补全:键入
Math.
,则会得到在generator变量上调用的Math
类的所有方法的一个列表,如果键入Math.l
,按tab则会补全为Math.log
,从而得到log方法。
jshell> "Core Java".length()
$1 ==> 9
jshell> 5 * $1 -3
$2 ==> 42
jshell> int answer = 6 * 7
answer ==> 42
笔记目录
Java核心技术卷I (11版)第二章学习
Java核心技术卷I (11版)第三章学习(一)
Java核心技术卷I (11版)第三章学习(二)
Java核心技术卷I (11版)第三章学习(三)