![](https://img-blog.csdnimg.cn/20190921200240162.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java程序设计
文章平均质量分 75
cd_sywe
这个作者很懒,什么都没留下…
展开
-
Java的GUI事件处理
事件和监听器先来了解什么是事件,事件就是表示一个对象的状态发生了变化。例如,每当一个按钮按下时,实际按钮的状态就发生了改变,那么此时就会产生一个事件,而如果需要事件的监听者不断的监听事件的变化,并根据这些事件进行相应的处理。在 Swing 编程中,依然使用了最早的 AWT 的事件处理方式,所有的事件类(基本上任意一个组件都有对应的事件)都是 EventObject 类的子类。如下图所示。E...原创 2019-12-18 20:06:44 · 595 阅读 · 0 评论 -
Java的GUI编程
GUI图形用户界面(Graphic User Interface,简称GUI)是一种被大家广泛接受的人机交互方式,是当今计算机发展的重大成就之一,与字符(或命令行)界面不同,是指采用图形方式显示的计算机操作环境的用户接口。Sun已经提供了一个跨平台GUI开发工具包 AWT 抽象窗口工具箱(Abstract Window Toolkit)。Sun又创建了一个新的GUI框架 swing 。解...原创 2019-12-15 09:51:47 · 484 阅读 · 0 评论 -
Java的Reader和Writer
ReaderReader 是Java的IO库提供的另一个输入流接口。和 InputStream 的区别是,InputStream 是一个字节流,即以 byte 为单位读取,而 Reader 是一个 字符 流,即以 char 为单位读取:InputStreamReader字节流,以byte为单位字符流,以char为单位读取字节(-1,0~255):int read()...原创 2019-12-13 09:48:00 · 2033 阅读 · 1 评论 -
Java的变量和数据类型
变量变量就是初中数学的代数的概念,例如一个简单的方程,x,y都是变量:原创 2019-09-05 14:14:57 · 675 阅读 · 0 评论 -
Java的整数运算
四则运算Java的整数运算与C语言相同,遵循四则运算规则,可以使用任意嵌套的小括号。四则运算规则和初等数学一致。例如:public class Main { public static void main(String[] args) { int i = (100 + 200) * (99 - 88); // 3300 int n = 7 * (5 ...原创 2019-09-05 15:05:49 · 893 阅读 · 0 评论 -
Java的浮点运算
浮点数运算特点浮点数运算和整数运算相比,只能进行加减乘除这些数值计算,不能做位运算和移位运算。在计算机中,浮点数虽然表示的范围大,但是,浮点数有个非常重要的特点,就是浮点数常常无法精确表示。浮点数0.1在计算机中就无法精确表示,因为十进制的0.1换算成二进制是一个无限循环小数,很显然,无论使用float还是double,都只能存储一个0.1的近似值。但是,0.5这个浮点数又可以精确地表示。...原创 2019-09-05 15:17:22 · 1289 阅读 · 1 评论 -
Java的布尔运算
布尔运算符对于布尔类型boolean,永远只有 true 和 false 两个值。布尔运算是一种关系运算,包括以下几类:比较运算符:>,>=,<,<=,==,!=与运算 &&或运算 ||非运算 !下面是一些示例:boolean isGreater = 5 > 3; // trueint age = 12;boolean...原创 2019-09-05 15:29:54 · 1762 阅读 · 0 评论 -
Java的字符和字符串
字符类型字符类型 char 是基本数据类型,它是 character 的缩写。一个 char 保存一个 Unicode 字符:char c1 = 'A';char c2 = '中';Java在内存中总是使用 Unicode 表示字符,所以,一个英文字符和一个中文字符都用一个 char 类型表示,它们都占用两个字节。要显示一个字符的 Unicode 编码,只需将 char 类型直接赋值给 ...原创 2019-09-05 15:48:20 · 293 阅读 · 0 评论 -
Java的输入输出
Java的输出在前面的代码中,使用了很多次 System.out.println() 来向屏幕输出一些内容。println 是 print line 的缩写,表示输出并换行。因此,如果输出后不想换行,可以用 print() :public class Main { public static void main(String[] args) { System.out....原创 2019-09-15 14:57:43 · 582 阅读 · 0 评论 -
练习题 - Java基础知识
练习请帮小明同学设计一个程序,输入上次考试成绩(int)和本次考试成绩(int),然后输出成绩提高的百分比,保留两位小数位(例如,21.75%)。原创 2019-09-15 21:38:05 · 665 阅读 · 0 评论 -
Java的分支结构 - if
if 语句上面讲到的程序,都是顺序程序,程序中所有语句都是按照语句的先后次序,顺序执行。但是,如果根据情况来决定是否执行某一段代码时,就需要用到分支语句 if 语句。if 语句的基本语法是:if (条件) { // 条件满足时执行的语句}if 语句根据条件的计算结果(true还是false),决定是否执行 if 语句块(花括号 { } 包含的所有语句)。让我们来看一个例子:...原创 2019-09-17 16:10:01 · 637 阅读 · 1 评论 -
Java的分支结构 - switch
除了 if 语句外,还有一种条件判断,switch 是根据某个表达式的结果,分别去执行不同的分支。例如,在游戏中,让用户选择选项:单人模式多人模式退出游戏这时,switch 语句就派上用场了。switch 语句根据switch (表达式) 计算的结果,跳转到匹配的 case 结果,然后继续执行后续语句,直到遇到 break 结束执行。public class Main { ...原创 2019-09-17 16:41:06 · 701 阅读 · 0 评论 -
练习题 - Java分支结构
1、请用if … else编写一个程序,用于计算体质指数BMI,并打印结果。BMI = 体重(kg)除以身高(m)的平方BMI结果:过轻:低于18.5正常:18.5-25过重:25-28肥胖:28-32非常肥胖:高于322、使用switch实现一个简单的石头、剪子、布游戏,补全下面的程序。public class Main { public static void main(S...原创 2019-09-21 20:13:34 · 1289 阅读 · 0 评论 -
Java的循环结构 - while
while结构循环语句就是主要作用是让计算机进行重复动作,在条件满足时继续循环,条件不满足时退出循环。例如,计算从1到100的和:1 + 2 + 3 + 4 + … + 100 = ?除了用数列公式外,完全可以让计算机做100次循环累加。因为计算机的特点是计算速度非常快,我们让计算机循环一亿次也用不到1秒,所以很多计算的任务,人去算是算不了的,但是计算机算,使用循环这种简单粗暴的方法就可以...原创 2019-09-24 10:20:58 · 586 阅读 · 0 评论 -
Java的分支结构 - 嵌套
前面讲到了 if 的多分支结构,表示当有多种情况时,选择其中的一种进行执行。但在现实中,还存在很多其他情况,例如,当条件的关系不是并列的,而是有主次的,就需要使用 if 的嵌套结构了。嵌套 if 语句时,只有当外层 if 的条件成立时,才会判断内层 if 的条件。嵌套 if 的执行情况如下:if (条件1) { if (条件2) { // 条件1和条件2同时满足时执行的语句...原创 2019-09-24 11:16:33 · 1945 阅读 · 0 评论 -
Java的循环结构 - for
除了上面讲到的 while 和 do while 循环,Java使用最广泛的是 for 循环。原创 2019-10-09 15:20:21 · 572 阅读 · 0 评论 -
Java的数组基础
数组如果有一组类型相同的变量,例如,5位同学的成绩,可以这么写:public class Main { public static void main(String[] args) { // 使用变量方式定义 int n1 = 68; int n2 = 79; int n3 = 91; int n4 = 8...原创 2019-10-20 21:04:18 · 363 阅读 · 0 评论 -
Java的数组操作
遍历数组通过 for 循环就可以遍历数组。因为数组的每个元素都可以通过索引来访问,因此,使用标准的 for 循环可以完成一个数组的遍历:public class Main { public static void main(String[] args) { int[] n = { 1, 4, 9, 16, 25 }; for (int i=0; i<...原创 2019-10-23 10:39:30 · 376 阅读 · 1 评论 -
Java的数组排序
冒泡排序对数组进行排序是程序中非常基本的需求。常用的排序算法有冒泡排序、插入排序和快速排序等。我们来看一下如何使用冒泡排序算法对一个整型数组从小到大进行排序:import java.util.Arrays;public class Main { public static void main(String[] args) { int[] n = { 28, 12,...原创 2019-10-23 11:24:55 · 534 阅读 · 0 评论 -
Java的多维数组
二维数组二维数组就是数组的数组。定义一个二维数组如下:public class Main { public static void main(String[] args) { int[][] ns = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12...原创 2019-10-27 21:47:26 · 367 阅读 · 0 评论 -
Java的面向对象基础
面向对象编程,是一种通过对象的方式,把现实世界映射到计算机模型的一种编程方法。现实世界中,我们定义了 人 这种抽象概念,而具体的人则是 小明 、小红 、 小军 等一个个具体的人。所以, 人 可以定义为一个 类(class),而具体的人则是 实例(instance):现实世界计算机模型Java代码人类 / classclass Person { }小明实例 / ...原创 2019-11-03 21:21:58 · 414 阅读 · 0 评论 -
Java的面向对象 -- 方法
一个 class 可以包含多个 field ,例如,我们给 Person 类就定义了两个 field :class Person { public String name; public int age;}但是,直接把 field 用 public 暴露给外部可能会破坏封装性。比如,代码可以这样写:Person ming = new Person();ming.name...原创 2019-11-03 22:12:25 · 406 阅读 · 0 评论 -
Java的面向对象 -- 构造方法
创建实例的时候,我们经常需要同时初始化这个实例的字段,例如:Person ming = new Person();ming.setName("小明");ming.setAge(12);初始化对象实例需要3行代码,而且,如果忘了调用 setName() 或者 setAge() ,这个实例内部的状态就是不正确的。能否在创建对象实例时就把内部字段全部初始化为合适的值?完全可以。这时,我们就...原创 2019-11-11 07:57:57 · 446 阅读 · 0 评论 -
Java的面向对象 -- 继承
在前面的章节中,我们已经定义了 Person类 :class Person { private String name; private int age; public String getName() {...} public void setName(String name) {...} public int getAge() {...} p...原创 2019-11-11 09:37:06 · 437 阅读 · 0 评论 -
Java的面向对象 -- 多态
在继承关系中,子类如果定义了一个与父类方法签名完全相同的方法,被称为 覆写(Override)。例如,在 Person 类中,我们定义了 run() 方法:class Person { public void run() { System.out.println("Person.run"); }}在子类 Student 中,覆写这个 run() 方法:c...原创 2019-11-13 21:23:14 · 494 阅读 · 1 评论 -
Java的面向对象 -- 抽象类
由于每个子类都可以覆写父类的方法,例如:class Person { public void run() { … }}class Student extends Person { @Override public void run() { … }}class Teacher extends Person { @Override public v...原创 2019-11-17 09:54:24 · 492 阅读 · 0 评论 -
Java的面向对象 -- 接口
在抽象类中,抽象方法本质上是定义接口规范:即规定高层类的接口,从而保证所有子类都有相同的接口实现,这样,多态就能发挥出威力。如果一个抽象类没有字段,所有方法全部都是抽象方法:abstract class Person { public abstract void run(); public abstract String getName();}就可以把该抽象类改写为接口:...原创 2019-11-17 10:12:06 · 392 阅读 · 0 评论 -
Java的面向对象 -- 作用域
在Java中,我们经常看到 public 、protected 、private 这些修饰符。在Java中,这些修饰符可以用来限定访问作用域。public定义为 public 的 class 、interface 可以被其他任何类访问:package abc;public class Hello { public void hi() { }}上面的 Hello 是 ...原创 2019-11-20 20:51:29 · 770 阅读 · 0 评论 -
Java的异常
在计算机程序运行的过程中,总是会出现各种各样的错误。有一些错误是用户造成的,比如,希望用户输入一个int类型的年龄,但是用户的输入是abc:String s = "abc";int n = Integer.parseInt(s); // NumberFormatException!程序想要读写某个文件的内容,但是用户已经把它删除了:String t = readFile("C:\\...原创 2019-11-24 19:27:01 · 289 阅读 · 0 评论 -
Java的异常捕获与处理
在Java中,凡是可能抛出异常的语句,都可以用 try ... catch 捕获。把可能发生异常的语句放在 try { ... } 中,然后使用 catch 捕获对应的 Exception 及其子类。多catch语句可以使用多个 catch 语句,每个 catch 分别捕获对应的 Exception 及其子类。JVM在捕获到异常后,会从上到下匹配 catch 语句,匹配到某个 catch 后,...原创 2019-11-24 21:41:07 · 333 阅读 · 0 评论 -
Java的自定义异常
Java标准库定义的常用异常包括:当我们在代码中需要抛出异常时,尽量使用JDK已定义的异常类型。例如,参数检查不合法,应该抛出 IllegalArgumentException :static void process1(int age) { if (age <= 0) { throw new IllegalArgumentException(); }...原创 2019-11-25 21:40:33 · 294 阅读 · 0 评论 -
Java的字符串
在Java中,String 是一个引用类型,它本身也是一个 class 。但是,Java编译器对 String 有特殊处理,即可以直接用 "..." 来表示一个字符串:String s1 = "Hello!";实际上字符串在 String 内部是通过一个 char[] 数组表示的,因此,按下面的写法也是可以的:String s2 = new String(new char[] {'H', ...原创 2019-11-27 20:51:06 · 267 阅读 · 0 评论 -
Java的IO操作
IOIO 是指 Input/Output ,即输入和输出。以内存为中心:Input 指从外部读入数据到内存,例如,把文件从磁盘读取到内存,从网络读取数据到内存等等。Output 指把数据从内存输出到外部,例如,把数据从内存写入到文件,把数据从内存输出到网络等等。为什么要把数据读到内存才能处理这些数据?因为代码是在内存中运行的,数据也必须读到内存,最终的表示方式无非是byte数组,字符串等,...原创 2019-12-01 20:51:39 · 355 阅读 · 0 评论 -
Java的File对象
在计算机系统中,文件是非常重要的存储方式。Java的标准库 java.io 提供了 File 对象来操作文件和目录。要构造一个 File 对象,需要传入文件路径:import java.io.*;public class Main { public static void main(String[] args) { File f = new File("C:\\Win...原创 2019-12-01 21:07:36 · 711 阅读 · 0 评论 -
Java的InputStream类和OutputStream类
InputStream 就是Java标准库提供的最基本的输入流。它位于 java.io 这个包里。java.io 包提供了所有 同步IO 的功能。要特别注意的一点是,InputStream 并不是一个接口,而是一个抽象类,它是所有输入流的 超类。这个抽象类定义的一个最重要的方法就是 int read(),签名如下:public abstract int read() throws IOExce...原创 2019-12-01 22:16:56 · 2023 阅读 · 0 评论