java课堂动手动脑及课后实验总结
动手动脑一:枚举
输出结果:
false
false
true
SMALL
MEDIUM
LARGE
分析和总结用法
枚举类型的使用是借助ENUM这样一个类,这个类是JAVA枚举类型的公共基本类。枚举目的就是要让某个变量的取值只能为若干固定值中的一个。
1、Size s=Size.SMALL;
对s变量进行赋值,只能给已经定义好的常量(即SMALL,MEDIUM,LARGE中的其中一个)。
2、System.out.println(s==t);
判断s是否与t相同。
3、System.out.println(s.getClass().isPrimitive());
调用enum中的方法。
4、Size u=Size.valueOf("SMALL");
对u进行赋值,与1相似,使用不同的赋值语句。
5、System.out.println(s==u);
判断s是否与u相同。
6、for(Size value:Size.values())
{
System.out.println(value);
}
对枚举进行遍历,并且找最大的。
动手动脑二:原码,补码,反码
计算机内,定点数有3种表示法:原码、反码和补码。反码是数值存储的一种,但是由于补码更能有效表现数字在计算机中的形式,所以多数计算机一般都不采用反码表示数。
原码:二进制的定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码:正数的补码与其原码相同,负数的补码是在其反码末位加1;
Java是采用补码表示的。
动手动脑三:同名屏蔽
public class test1 {
private static int value=1;
public static void main(String[] args) {
// TODO Auto-generated method stub
int value=2;
System.out.println(value);
}
}

结论:实际数的值以主函数中的变量值为主,屏蔽掉同类中主函数外的值。
实验一:二柱子四则运算
源代码:
package java课堂;
import java.util.*;
public class shiyan1 {
public static int ran1()
{
int n;
n=1+(int)(Math.random()*10);
return n;
}//随机生成1-9
public static int ran2()
{
int n;
n=1+(int)(Math.random()*50);
return n;
}//随机生成1-50
public static int ran3(int m)
{
int n;
n=1+(int)(Math.random()*m);
return n;
}//随机生成1-81
public static void main(String[] args) {
// TODO Auto-generated method stub
int i;
int a;
int b;
char s1;
char []s= {'+','-','*','/'};
Random rd = new Random();
for(i=1;i<=30;i++)
{
s1=s[rd.nextInt(4)];//随机生成加减乘除符号
if(s1=='+')
{
a=ran2();
b=ran2();
System.out.println(i+": "+a+""+s1+""+b+"= ?");
}//三个数的加法
else if(s1=='-')
{
a=ran2();
b=ran2();
boolean flag=true;
while(flag)
{
a=ran2();
b=ran2();
if(a>b)
flag=false;
}//防止得数出现负数
System.out.println(i+": "+a+""+s1+""+b+"= ?");
}
else if(s1=='*')
{
a=ran1();
b=ran1();
System.out.println(i+": "+a+""+s1+""+b+"= ?");
}//九九乘法
else
{
b=ran1();
a=ran3(9*b);
boolean flag=true;
while(flag)
{
b=ran1();
a=ran3(9*b);
if((a%b)==0&&(a>b))
flag=false;
}//如果除法合法,跳出循环
System.out.println(i+": "+a+""+s1+""+b+"= ?");
}
}//出三十道题
}
}
测试截图:

这个程序最主要的地方就是随机生成加减乘除,以及具体到除法运算中的是否可行问题。
实验二:随机生成验证码
package java课堂;
import java.util.*;
import java.awt.*;
import javax.swing.*;
public class shiyan2 {
public static char ran()
{
char []s= {'0','1','2','3','4','5','6','7','8','9','o','p','r','m','n','s','q'};
char s1;
Random rd = new Random();
s1=s[rd.nextInt(17)];
return s1;
}
public static void main(String[] args) {
// TODO Auto-generated method stub\
boolean flag=true;
Scanner scan=new Scanner(System.in);
int i;
char []a=new char[4];
char []b=new char[4];
System.out.println("验证码如下:");
for(i=0;i<4;i++)
{
a[i]=ran();
System.out.println(a[i]);
}
System.out.println("\n");
System.out.println("请输入验证码 : ");
for(i=0;i<4;i++)
{
String s=scan.next();
b[i]=s.charAt(0);
if(b[i]!=a[i])
flag=false;
}
if(flag)
{
System.out.println("验证码正确");
}
else
System.out.println("验证码错误");
}
}
测试截图

这个实验主要是让我们熟悉随机生成数字和字符的组合,但是我并没有按照要求实现图形化界面很遗憾,以后一定在这方面下功夫去学习,争取尽快做出来界面化的让人看起来很舒服的程序。
java课堂动手动脑及课后实验总结的更多相关文章
- 2019-9-16 java上课知识整理总结(动手动脑,课后实验)
java上课知识整理总结(动手动脑,课后实验) 一,课堂测试 1,题目:课堂测试:像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 “软件” 要求:(1)题目避免重复: (2)可定制( ...
- java动手动脑和课后实验型问题String类型
1.请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? true true false 总结: 使用new关键字创建字符串对象时, 每次申请 ...
- java动手动脑和课后实验型问题第四讲
1.完全"手写代码实现"随机数生成 动手动脑: 编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. Modulus=231-1=int.MaxValue Mult ...
- java动手动脑和课后实验型问题
1.以下代码的输出结果是什么?为什么会有这个结果? int[] a = { 5, 7, 20 }; System.out.println("a数组中的元素:"); // 循环输出a ...
- JAVA课堂动手动脑实验--方法的重载定义,组合数的递归算法
1. 请看以下代码,你发现了有什么特殊之处吗? 答:此程序中的两个方法虽然方法名一样,但是参数的数据类型不同: 这是方法的重载,方法的重载需要满足的条件: 1)方法名相同: 2)参数类型不同,参数个数 ...
- 动手动脑(&课后实验):类和对象
1. 以下代码为何无法通过编译?哪儿出错了? 如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法.而此时程序中已提供了一个有一个参数的构造函数,而定义对象时却没有参数,所以程序会报错. ...
- java课堂动手动脑总结
java有8种基本数据类型:byte,int,short,long,boolean,char,float,double. 对应的为:Byte,Int,Short,Long,Boolean,Charec ...
- 动手动脑(&课后实验):生成随机数,函数的重载
一.编写一个方法,使用纯随机数生成算法生成指定数目(比如1000个)的随机整数. 1.程序源代码 import java.util.Scanner; import java.util.Random; ...
- Java课堂 动手动脑6
一.下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d;d=m;d=(Dog)m;d=c;c=(Cat)m; 先进行自我判断, 1.代码: class Mammal{} c ...
随机推荐
- js中reduce用法详解
介绍reduce reduce() 方法接收一个函数作为累加器,reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(上一次回调的返回值),当 ...
- ResNet网络的训练和预测
ResNet网络的训练和预测 简介 Introduction 图像分类与CNN 图像分类 是指将图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法,是计算机视觉中其他任务,比如目标检测 ...
- GPU编程和流式多处理器(六)
GPU编程和流式多处理器(六) 5. 纹理和表面 读取和写入纹理和表面的指令,所引用的隐式状态,比其他指令要多得多.header中包含诸如基地址,尺寸,格式和纹理内容的解释之类的参数,该header是 ...
- 用NVIDIA A100 GPUs提高计算机视觉
用NVIDIA A100 GPUs提高计算机视觉 Improving Computer Vision with NVIDIA A100 GPUs 在2020年英伟达GPU技术会议的主题演讲中,英伟达创 ...
- 【NX二次开发】Block UI 从列表选择部件
属性说明 属性 类型 描述 常规 BlockID String 控件ID Enable Logical 是否可操作 Group ...
- linux安装配置交叉编译器arm-linux-gnueabi-gcc
要使我们在x86架构下运行的程序迁移至ARM架构的开发板中运行时,需要通过交叉编译器将x86下编写的程序进行编译后,开发版才能运行. 在安装之前我们需要了解,什么是交叉编译器. 一.下载交叉编译器 这 ...
- VsCode中添加tasks.json
选中项目文件夹,按ctrl+shift+p,输入tasks 选择之后,继续选择 然后选择 选中就可以了
- Linux基本命令精讲
一.Shell Linux系统中运行的一种特殊程序 在用户和内核之间充当"翻译官 用户登录 Linux系统时,自动加载一个 Shell程序 Bash是 LinuxShell系统中默认使用的程 ...
- js笔记16
动画 (1)css样式提供了运动 过渡的属性transition 从一种情况到另一种情况叫过渡 transition:attr time linear delay attr 是变化的属性 ...
- excel VBA根据单元格内的逗号把内容拆分行
Sub test1() Dim h Dim j As Integer j = 0 '用于辅助循环的进行,可以在拆分行获取下一个需要拆分单元格的行号 'Application. ...