Java tutorial 02
一、EnumTest.java枚举类型
public class EnumTest {
public static void main(String[] args) {
Size s=Size.SMALL;
Size t=Size.LARGE;
//s和t引用同一个对象?
System.out.println(s==t); //
//是原始数据类型吗?
System.out.println(s.getClass().isPrimitive());
//从字符串中转换
Size u=Size.valueOf("SMALL");
System.out.println(s==u); //true
//列出它的所有值
for(Size value:Size.values()){
System.out.println(value);
}
}
}
enum Size{SMALL,MEDIUM,LARGE};

结论:枚举类型是引用类型,不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。
二、TestDouble.java测试浮点数
public class TestDouble {
public static void main(String args[]) {
System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
System.out.println("4.015 * 100 = " + (4.015 * 100));
System.out.println("123.3 / 100 = " + (123.3 / 100));
}
}

结论:浮点数不能用数值精确赋值,因为浮点数只能近似表示有理数,还有二进制小数与十进制小数的互相转换产生的误差。
三、System.out.println()
public class TestAdd {
public static void main(String args[]){
int X=100;
int Y=200;
System.out.println("X+Y="+X+Y);
System.out.println(X+Y+"=X+Y");
}
}

结论:在System.out.println()中,如果在string字符串后面是+和变量,会把变量转换成string类型,加号起连接作用,然后把两个字符串连接成一个新的字符串输出;如果先有变量的加减运算再有字符串,那么会从左到右先计算变量的加减,然后再与后面的string结合成一个新的字符串。也就是说加号只有在两个string类型或者其中一个是string类型的时候才起到连接作用,否则仍然是运算符。
四、回文数(1-99999)
import javax.swing.JOptionPane;
public class Number
{
public static void main(String args[])
{
int number=0,d5,d4,d3,d2,d1;
String str=JOptionPane.showInputDialog("输入一个 1 至 99999 之间的数");
number=Integer.parseInt(str);
if(number>=1&&number<=99999) //判断 number 在 1 至 99999 之间的条件
{
d5=number/10000;
d4=(number/1000)%10;
d3=(number/100)%10;
d2=(number/10)%10;
d1=number%10;
if(d5>0) //判断 number 是 5 位数的条件
{
System.out.println(number+"是 5 位数");
if(d5==d1&&d4==d2) //判断 number 是回文数的条件
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d5==0&&d4>0) //判断 number 是 4 位数的条件
{
System.out.println(number+"是 4 位数");
if(d4==d1&&d3==d2) //判断 number 是回文数的条件码
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d5==0&&d4==0&&d3>0) //判断 number 是 3 位数的条件
{
System.out.println(number+"是 3 位数");
if(d3==d1) //判断 number 是回文数的条件
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d2!=0)
{
System.out.println(number+"是 2 位数");
if(d1==d2)
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d1!=0)
{
System.out.println(number+"是 1 位数");
System.out.println(number+"是回文数");
}
}
else
{
System.out.printf("\n%d 不在 1 至 99999 之间",number);
}
}
}


五、编写一个程序,要求用户输入两个整数,求出其加减乘除,并用消息框显示计算结果
import javax.swing.JOptionPane; // import class JOptionPane
public class NumberCal {
public static void main( String args[] )
{
String firstNumber, // first string entered by user
secondNumber; // second string entered by user
int number1, // first number to
number2, // second number to
result_ = 0;
String symbol; //四则运算符号
// read in first number from user as a string
firstNumber =
JOptionPane.showInputDialog( "Enter first integer" );
symbol=JOptionPane.showInputDialog("Enter symbol(+-*/)");
// read in second number from user as a string
secondNumber =
JOptionPane.showInputDialog( "Enter second integer" );
number1 = Integer.parseInt( firstNumber );
number2 = Integer.parseInt( secondNumber );
if(symbol.equals("+")) {result_=number1+number2;}
if(symbol.equals("-")) {result_=number1-number2;}
if(symbol.equals("*")) {result_=number1*number2;}
if(symbol.equals("/")) {result_=number1/number2;} // display the results
JOptionPane.showMessageDialog(
null,number1+symbol+number2+"="+result_ , "Results",
JOptionPane.PLAIN_MESSAGE ); System.exit( 0 );
}
}

六、示例程序每次运行时,都会生成不同的字符串(验证码)
import java.util.Random; //引入随机类包
import javax.swing.JOptionPane;
public class IdentifyingCode {
public static void main(String[] args) {
Random ra=new Random(),flag=new Random();
String identifyCode="",inputCode;
int numberA,numberB,i;
while(true){ //使用Random随机产生五个大写或小写字符 并加入到验证码字符串identifyCode中
for(i=0;i<5;i++){
numberA=flag.nextInt(2)+1;
numberB=ra.nextInt(26)+1;
if(numberA==1)
identifyCode+=(char)(numberB+64);
if(numberA==2)
identifyCode+=(char)(numberB+96);
}
inputCode=JOptionPane.showInputDialog("请输入验证码:"+identifyCode);
if(inputCode.equals(identifyCode)){
JOptionPane.showMessageDialog(null,"输入正确!","结果",JOptionPane.PLAIN_MESSAGE);
break; //消息框输入验证码 若正确 则结束程序
}
else{
JOptionPane.showMessageDialog(null,"输入错误,请重新输入!","结果",JOptionPane.WARNING_MESSAGE);
identifyCode=""; //验证码输入错误 则重新进入循环 重新输入新的验证码 直至输入正确为止
}
}
}
}



七、猜数字游戏
import java.util.Random; //引入随机类包
import javax.swing.JOptionPane;
public class Guess {
public static void main(String[] args) {
Random ra=new Random();
int flagNumber=ra.nextInt(100)+1,//随机产生1-100整数
guessNumber=0;
String strNumber;
while(true){//循环直至猜对才结束
strNumber=
JOptionPane.showInputDialog("请猜一个1-100范围内的整数:");
//消息框输入所猜整数
guessNumber=Integer.parseInt(strNumber);
if(flagNumber==guessNumber){
JOptionPane.showMessageDialog(null,"猜对了!","结果",JOptionPane.PLAIN_MESSAGE);
break; //猜对了 结束
}
if(flagNumber<guessNumber){
JOptionPane.showMessageDialog(null,"猜大了!","结果",JOptionPane.WARNING_MESSAGE);
}//猜大了 继续循环
if(flagNumber>guessNumber){
JOptionPane.showMessageDialog(null,"猜小了!","结果",JOptionPane.WARNING_MESSAGE);
}//猜小了 继续循环
}
}
}










Java tutorial 02的更多相关文章
- Java学习02
Java学习02 1.导入内部的包 一.在包的下面加入下面一句话: import java.util.Scanner; 二.在类中 Scanner input=new Sanner(Sy ...
- [Java 教程 02] 开发环境搭建
在上一篇文章对Java做了一个简单介绍之后,我想大家都已经对她有一个初步的认识了吧!那踏入正式学习使用Java之前,我们有一步是不得不做的,它是什么呢?没有错,就是我们本篇文章的标题所说,搭建Java ...
- # 095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 03 封装总结 01 封装知识点总结
095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 04 static关键字(续)
094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 03 static关键字(下)
093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 092 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 02 static关键字(中)
092 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 091 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 01 static关键字(上)
091 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 090 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 04 使用包进行类管理(2)——导入包
090 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 089 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 使用包进行类管理(1)——创建包
089 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
随机推荐
- 3.3 使用STC89C52控制MC20通过GPRS远程发送数据
需要准备的硬件 MC20开发板 1个 https://item.taobao.com/item.htm?id=562661881042 GSM/GPRS天线 1根 https://item.taoba ...
- Shallow Copy & Deep Copy in Python list
今天在写一个小程序的时候用到了2维数组, 顺手就写成了[[0.0]*length]*length, 结果为了这个小错,调试了半个多小时, 其实之前对与浅复制和深复制已经做过学习和总结, 但真正编程用到 ...
- JAVA学习笔记----【转】 java.toString() ,(String),String.valueOf的区别
在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结. 常用的方法有Object#toString(),(String)要转换的对象,S ...
- hive与hbase
作者:有点文链接:https://www.zhihu.com/question/21677041/answer/185664626来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- c# 抽象类(abstract)
using System; using System.Collections.Generic; using System.Linq; using System.Text; //抽象类(abstract ...
- ajax数据请求的理解
一,请求 发送请求有两种方式:get 跟 post . 1.get仅请求数据,不需要服务端做处理,最后会返回指定的资源. 2.post可以提交数据,服务端根据提交的数据做处理,再返回数据. 二,创建X ...
- 对”唯一键可以包含NULL值,并且每个NULL值都是唯一的(即NULL!=NULL)“理解
因为最近在写一篇关于字符串模糊检索的论文,开始比较细致的研究数据库(MySQL)中的index问题,变到图书馆借了本<Effective MySQL之SQL语句最优化>(Ronald Br ...
- 如何理解Java程序使用Unicode字符集编写
Java采用UTF-16编码作为内码,也就是说在JVM内部,文本是用16位码元序列表示的,常用的文本就是字符(char)和字符串(String)字面常量的内容.注:UTF-16是Unicode字符集的 ...
- INSPIRED启示录 读书笔记 - 第2章 产品管理与产品营销
两者不是一回事 1.产品经理的工作是从细节上定义开发团队开发什么产品 2.市场营销的职责是对外宣传产品 产品公司常常会陷入的三种误区 1.由市场营销人员定义产品:由产品营销经理或所谓的产品经理负责收集 ...
- Device Tree(一):背景介绍【转】
本文转载自:http://www.wowotech.net/device_model/why-dt.html 一.前言 作为一个多年耕耘在linux 2.6.23内核的开发者,各个不同项目中各种不同周 ...