正文
java高难度代码 java好玩的代码
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
JAVA高手帮忙写3段代码,急……………………
第一个问题:
我建议你不要用工具,最好用手写代码,然后javac java 编译运行,你就能清楚了,
第二个,有难度哦,要是你可以,你可以直接重写Object类,(注:是在JDK里面重写Object类,),在Object的构造方法里面用一个静态变量去记录实例化Object的次数。
因为所有类都继承自Object,所以,你就需要监控Object的实例化次数,就OK了,
第三个问题,和第一个问题一样的。
求一个50行左右的JAVA代码,最好每行带注释,谢谢啦
/*这个相当详细了.
程序也不算太难.而且给老师看的时候效果比较好.因为有图形化界面,又实现一个比较实用的功能.老师会比较高兴的.
建立一个文件名为Change.java就可以编译了*/
/*
* 这个程序实现输入身高算出标准体重,输入体重,算出身高的功能
*/
import java.awt.*; //导入相关类包,这才样使用相应awt图形界面的类
import java.awt.event.*;//同上
public class Change extends Frame { //定义一个类Change, 父类是Frame(图形界面的)
Button b = new Button("互查"); //创建一个按钮的对象b,显示为"互查"
Label l1 = new Label("身高(cm)");//创建一个lable.显示身高
Label l2 = new Label("体重(kg)");//创建一个lable 显示体重
double heigth, weigth; //定义变量
double x, y; //定义变量
TextField tf1 = new TextField(null, 10);//添加Text框
TextField tf2 = new TextField(null, 10);//添加Text框
public Change() {//类的构造函数,完成初始化
super("互查表");//创建窗口,标题为互查表
setLayout(new FlowLayout(FlowLayout.LEFT));//设置布局
add(l1);//把lable 身高放到window里
add(tf1);//把Text 框 放到窗口上
add(l2); //把lable 体重放到window里
add(tf2);//Test放到窗口里
add(b);//把button放到窗口上
pack();//自动放到窗口里排列上边的组件
setVisible(true);//可以让用户看到窗口
addWindowListener(new WindowAdapter() {//如果按 X, 关闭窗口
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
b.addActionListener(new ButtonListener());//添加button监听函数
}
class ButtonListener implements ActionListener {//实现click button时功能操作
public void actionPerformed(ActionEvent e) {//当click调用
if (tf1.getText()!=null) {//检查tf1 test 是否为空
try {//取异常
x = Double.parseDouble(tf1.getText());//字符转为double型
weigth = (x - 100) * 0.9;//算重量
tf2.setText("" + weigth);//显示重量
} catch (NumberFormatException ex) {
tf1.setText("");//如果输入不是数字,设为空
}
}
if (tf1.getText().equals("")==true){//tf1是否为空
y = Double.parseDouble(tf2.getText());//把tf2里的文本转为double 型 的
heigth = y / 0.9 + 100; //算身高根据重量
tf1.setText("" + heigth);}//显示身高
}
}
public static void main(String[] args) {//主函数,程序入口
new Change(); //建立类Change的对象,并调用他的构造函数Change().显示窗口
}
}
有些难度的java编程题
;
StringBuilder 结合了字符数组和字符串的好些优点,所以实现大整数类的时候如果利用 StringBuilder 可以省掉不少功夫,比如:
import java.util.*;
class SPBI { // SimplePositiveBigInteger 的缩略
public static void main(String[] args) {
try {
System.out.println("输入两个 30 位数以内的正整数和一个符号('+' 或 '*'):");
Scanner scn = new Scanner(System.in);
SPBI a = new SPBI(scn.nextLine().trim()),
b = new SPBI(scn.nextLine().trim());
String operator = scn.nextLine().trim();
if (a.toString().length() 30 || b.toString().length() 30)
throw new Exception("至少有一个整数超过 30 位数");
if ( ! operator.matches("\\+|\\*"))
throw new Exception("此程序不支持的符号:" + operator);
System.out.println(
"\n\n" +
a.toStringWithDigitGrouping() + operator + "\n" +
b.toStringWithDigitGrouping() + "\n" +
"------------------------------ \n");
if (operator.equals("+"))
System.out.println(a.add(b).toStringWithDigitGrouping());
else
System.out.println(a.multiply(b).toStringWithDigitGrouping());
} catch (Exception ex) {
System.out.println("错误:" + ex.getMessage() + "。请重试。");
}
}
// 此 SBPI 所代表的整数(注:个位数在左端)
private StringBuilder reversedDigits;
// 唯一的构造器
public SPBI(String spbi) {
if ( ! spbi.matches("\\d+"))
throw new IllegalArgumentException(spbi + " 不符合正整数格式");
reversedDigits = new StringBuilder(spbi).reverse();
normalize();
}
// 去掉这个 SPBI 中多余的前导零(全在 reversedDigits 的右端)
private void normalize() {
reversedDigits = new StringBuilder(reversedDigits.toString().replaceAll("(?!^)0+$", ""));
}
public String toString() {
return "" + new StringBuilder(reversedDigits).reverse();
}
// 除了在返回的字符串中加入了千位分组符外,跟 toString() 没差别
public String toStringWithDigitGrouping() {
return "" + new StringBuilder(reversedDigits.toString().replaceAll(".{3}(?!$)", "$0,")).reverse();
}
// 加法操作(等于 this += that 然后返回 this)
public SPBI add(SPBI that) {
int maxLength = Math.max(reversedDigits.length(), that.reversedDigits.length());
reversedDigits.setLength(maxLength); // 可能造成 reversedDigits 的右端被填入 '\0'
int carry = 0;
for (int i = 0; i reversedDigits.length(); i++) {
int digitOfThis = reversedDigits.charAt(i) != '\0' ? reversedDigits.charAt(i) - '0' : 0,
digitOfThat = i that.reversedDigits.length() ? that.reversedDigits.charAt(i) - '0' : 0,
sum = digitOfThis + digitOfThat + carry;
carry = sum 9 ? 1 : 0;
reversedDigits.setCharAt(i, (char) (sum % 10 + '0'));
}
reversedDigits.append(carry);
normalize();
return this;
}
// 乘法操作(等于 this *= that 然后返回 this)
public SPBI multiply(SPBI that) {
SPBI multiplesOfTenOfOriginalThis = new SPBI(toString());
reversedDigits = new StringBuilder("0"); // this 归零
for (int iThat = 0; iThat that.reversedDigits.length(); iThat++) {
for (int addCount = 0; addCount that.reversedDigits.charAt(iThat) - '0'; addCount++)
add(multiplesOfTenOfOriginalThis);
multiplesOfTenOfOriginalThis.reversedDigits.insert(0, 0); // 乘 10
}
return this;
}
}
JAVA 超难编程题:代码怎么写?
n= n * 2
n * a/2
n 为多边形 边数 a 为边长 除以2 是因为 圆周长公式 2πR
java高难度代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java好玩的代码、java高难度代码的信息别忘了在本站进行查找喔。