自由编写一个Java程序(类)

作者&投稿:剑审 (若有异议请与网页底部的电邮联系)
编写一个Java GUI应用程序模拟自由落体和平抛运动:一个球自由落下,一个球水平抛出。(本题30分)~

都可以的 图片添加后可以更改位置 不过我觉得java gui 不善于这种需求 你这种需求最好还是自己学学flash之类的 呵呵

先说C++吧,我自己就是从事这方面的工作的,当然我不是搞MFC的,我做的是与金融相关的,老是跟银行,银联打交道。C++编译出来的程序运行速度快,在Windows下编程MFC是基于C++封装得很成熟的图形界面编译框架,如果想做图形方面的变成还是用MFC吧,但是C++有做好用又最难用的东西就是指针了,需要用户自己给它分配和释放内存,如果处理不当就会CORE掉。而学习JAVA就完全不同于C++,JAVA里面有很多成熟的框架,他的原理是:先系统编译成JAVA的字节码文件就是我们说的.class文件,然后JAVA会给不同的操作系统去开发一个虚拟机,虚拟机就是用来解释这些字节码文件(.class),所以用JAVA编译出来的文件,只要那个系统上有JAVA虚拟级就可以运行起来,与系统无关。JAVA现在用的最多的就是做网页方面的。
我知道的,我理解的就这么多了,希望能帮助你。

我给你提供一个全面的。

目标:能够掌握一大半java的核心。
问题:看起来代码多,但有助于入门甚至达到高手级别。这个应该算是个精典。
建议:把所有代码复制粘贴。
要求:必须连接数据库。

第一个包bean包中的类:
//这个是自动生成的包,表示本包
package bean;

//映射数据库类,方便管理数据
public class UserBean {

//私有字段
private int userId;//学生id
private String userName;//学生姓名
private String userPass;//学生密码

//封装成公共属性,(把私有字段全选中,右键——源代码——生成get与set方法)
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPass() {
return userPass;
}
public void setUserPass(String userPass) {
this.userPass = userPass;
}

//空构造函数
public UserBean()
{

}
//初始化参数时用的构造函数
public UserBean(String name,String pass)
{
this.userName= name;
this.userPass = pass;
}

}

第二个包support包中的类:
package support;
import com.microsoft.sqlserver.jdbc.SQLServerDriver;//导入连接驱动包
import java.sql.*;//导入数据库包

//这个类是用来连接数据库的,在些之前要先加载驱动

public class DBConn {

//连接数据库方法,类型为连接类
public Connection getConn()
{
//定义一个连接对象
Connection conn = null;
try {
//加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("加载驱动成功!");

//连接数据库
conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databasename=myt85","sa","123456");
System.out.println("数据库连接成功!");

} catch (Exception e) {
e.printStackTrace();
System.out.println("数据库连接失败!");
}
return conn;
}

//关闭数据库方法
public void close(Connection conn,PreparedStatement pre)
{
try {
if(pre!=null)
{
pre.close();
}
//后面的判断是判断是否完全关闭
if(conn!=null||!conn.isClosed())
{
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
System.out.println("关闭数据库失败!");
}
}

//重载关闭方法,加入了一个关闭读取流
public void close(Connection conn,PreparedStatement pre,ResultSet rs)
{
try {
if(rs!= null)
{
rs.close();
}
if(pre!=null)
{
pre.close();
}
//后面的判断是判断是否完全关闭
if(conn!=null||!conn.isClosed())
{
conn.close();
}
} catch (SQLException e)
{
e.printStackTrace();
}
}

}

第三个包dao包中的类:
package dao;
import bean.UserBean;//映射数据库包
import support.DBConn;//连接数据库包
import java.util.*;//集合包
import java.sql.*;//数据库包

//这个类写了操作数据库里面数据的各种方法
public class UserDao {

//全局连接对象、预处理语句对象、结果集对象、连接类对象变量
Connection conn = null;
PreparedStatement pre = null;
ResultSet rs = null;
DBConn dbc = new DBConn();

//根据id号查询
public UserBean getAllUsersByuserId(int id)
{
//实例化用户类对象
UserBean user = new UserBean();

//要执行的SQL语句
String sql = "select * from users where userid = ?";
try {
//先打开数据库连接
conn = dbc.getConn();

//获得执行SQL的命令
pre = conn.prepareStatement(sql);
pre.setInt(1, id);//传参

//把SQL命令执行的内容赋值给结果集,这个地方千万不能把顺序写反了
rs = pre.executeQuery();

//如果读取到了内容,就把值赋给user对象
if(rs.next())
{
//后面的字段要与数据库列名相同
user.setUserId(rs.getInt("userid"));
user.setUserName(rs.getString("name"));
user.setUserPass(rs.getString("userpass"));
}

} catch (Exception e) {
e.printStackTrace();
}
finally
{
//最后要关上数据库
dbc.close(conn, pre, rs);
}
return user;
}

//查询所有,返回类型是集合
public ArrayList getAlluser()
{
//实例化集合
ArrayList array = new ArrayList();
String sql = "select * from users";
try {
conn = dbc.getConn();
pre = conn.prepareStatement(sql);
rs = pre.executeQuery();
while(rs.next())
{
//把查询到的结果集添加到ArrayList集合中去,无论是字符串还是int,取出的值一定要与数据库对应
array.add("id号:"+rs.getString("userid"));
array.add("姓名:"+rs.getString(2));
array.add("密码:"+rs.getString(3));
}
} catch (Exception e) {
e.printStackTrace();
}
finally
{
dbc.close(conn, pre, rs);
}
return array;
}
//删除
public boolean deleteUser(int id)
{
boolean bool = false;
String sql = "delete users where userid = ?";
try {
conn = dbc.getConn();
pre = conn.prepareStatement(sql);
pre.setInt(1, id);//这一步千万不要忘写或写错了顺序,很搞死人的
int count = pre.executeUpdate();//受影响的行数
if(count>0)
{
bool = true;
System.out.println("删除成功!");
return bool;//这一步是节省资源的办法,如果是正确的后面的就不执行
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("删除不成功!");
}
finally
{
dbc.close(conn, pre);
}
return bool;
}

//增加,这里面的参数是一个用户
public boolean insertUser(UserBean user)
{
boolean bool = false;
String sql = "insert into users values(?,?)";
try {
conn = dbc.getConn();
pre = conn.prepareStatement(sql);
pre.setString(1, user.getUserName());
pre.setString(2, user.getUserPass());
int count = pre.executeUpdate();
if(count>0)
{
bool = true;
System.out.println("插入成功!");
return bool;
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("插入不成功!");
}
finally
{
dbc.close(conn, pre);
}
return bool;
}

//修改
public boolean updateUser(UserBean user)
{
boolean bool = false;
String sql = "update users set username = ? where userid = ?";
try {
conn = dbc.getConn();
pre = conn.prepareStatement(sql);
pre.setString(1, user.getUserName());
pre.setInt(2, user.getUserId());
int count = pre.executeUpdate();
if(count>0)
{
bool = true;
System.out.println("修改成功!");
return bool;
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("修改不成功!");
}
finally
{
dbc.close(conn, pre);
}
return bool;
}

//验证登陆,,这里面的参数是自定义的两个参数
public boolean getAllUsersByUserNameAnduserPass(String name,String pass)
{
boolean bool = false;

//要执行的SQL语句
String sql = "select * from users where username = ? and userpass =?";
try {
//先打开数据库连接
conn = dbc.getConn();

//获得执行SQL的命令
pre = conn.prepareStatement(sql);
pre.setString(1,name);//传用户名
pre.setString(2,pass);//传用户密码
rs = pre.executeQuery();
//如果读取到了东西,则进行下述操作
if(rs.next())
{
bool = true;
System.out.println("登陆成功!");
return bool;
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("登陆不成功!");
}
finally
{
//最后要关上数据库
dbc.close(conn, pre,rs);
}
return bool;
}
//查询总的记录数
public int countUser()
{
//要执行的SQL语句,SQL语句用到了一个sd,是用来取值的
String sql = "select count(*) as ad from users ";
int count = 0;
try {
//先打开数据库连接
conn = dbc.getConn();

//获得执行SQL的命令
pre = conn.prepareStatement(sql);
rs = pre.executeQuery();
//如果读取到了东西,则进行下述操作
if(rs.next())
{
//获得ad的值,也就是总行数
count=Integer.parseInt(rs.getString("ad"));
}
} catch (Exception e) {
e.printStackTrace();
}
finally
{
//最后要关上数据库
dbc.close(conn, pre,rs);
}
//返回总行数
return count;
}

}

第四个包main包中的类:
package main;
import bean.UserBean;//映射数据库包
import support.DBConn;//连接数据库包
import java.util.*;//集合包
import java.sql.*;//数据库包
import dao.UserDao;//操作数据库方法包

//测试类
public class Test
{

public static void main(String args[])
{
//测试根据id号查询方法
UserDao ud = new UserDao();
// //用一个用户去接收ud方法中的值
// UserBean ub = ud.getAllUsersByuserId(1);
// //分别输出打印
// System.out.println("id号:"+ub.getUserId());
// System.out.println("姓名:"+ub.getUserName());
// System.out.println("密码:"+ub.getUserPass());
//
//
// //测试查询所有
// ArrayList array = ud.getAlluser();
// for(int i=0;i<array.size();i++)
// {
// //因为装进去的是字符串,所以也要定义相对的类型接收
// //array的取值也有不同用get()
// String s = array.get(i).toString();
// System.out.println(s);
// }
//
//
// //测试删除方法
// boolean b=ud.deleteUser(3);
//
// //测试插入方法,这个用到的是用户类的构造函数
// UserBean user = new UserBean("曹元","123");
// boolean bl =ud.insertUser(user);
//
//
// //测试修改方法,这个用到的是直接给类对象赋值方式
// UserBean userbean = new UserBean();
// userbean.setUserName("laoying");
// userbean.setUserId(4);
// boolean ble =ud.updateUser(userbean);

//测试验证方法
// boolean blea = ud.getAllUsersByUserNameAnduserPass("laoying", "123");

//测试查询的总行数
//用来接收总行数的变量
int i = ud.countUser();
System.out.println("查询到的总行数为:"+i);
}
}

下面这个是比较完整的了,有属性,有构造。

public class HelloWorld {//定义一个HelloWorld类
private String str;//定义一个类私有的属性str
public HelloWorld(String str) {//HelloWorld类带参数的构造方法
this.str = str;
}
public HelloWorld() {//HelloWorld类不带参数的构造方法
}
public String getStr() {//返回获取str属性值
return str;
}
public void setStr(String str) {//设定str属性的值
this.str = str;
}
public static void main(String[] args) {//类里面的主方法,是程序的入口
HelloWorld hello = new HelloWorld("你好,张三!");//new一个HelloWorld类的对象hello
System.out.println(hello.getStr());//打印出hello对象的str属性
}
}

一楼的答案其实才最能说明问题..........顶一楼

用你的现成代码

//这分好拿,一行代码的程序
/**定义一个类 H*/
public class H
{
public void print()
{
System.out.println("className is H") ;
}
}

class People{ //声明一个类
int id; //声明一个成员变量
int age; //声明一个成员变量

PeoPle(int _id,int _age) /*声明一个带参数的构造方法,只要功能是初始化成员变量*/
{
id = _id; //为成员变量赋值
age = _age; //为成员变量赋值
}
void score(int s){ //声明一个带参数的方法(学生的成绩:分数)
System.out.println(s); //打印传递进来的成绩
}
public static void maia(String args){ //程序的入口函数,main方法
People student = new People(1234,20); //实例化一个对象:student
System.out.println(student.id); /*打印学生的学号,括号中是通过student这个对象调用它的成员变量(学号)id */
System.out.println(student.age); /*打印学生的年龄,括号中是通过student这个对象调用它的成员变量(年龄)age */

student.score(90); /*是通过student这个对象调用它的成员方法(分数)score() */
}
}

楼上强人!呵呵

我刚发给别人的,
作业:
// Java 随便选择两个城市作为预先旅游目标。实现两个独立的线程分别显示10次
// 城市名,每次显示后休眠一段随机时间(1000毫秒以内),哪个先显示完毕,就决
// 定去哪个城市。分别用Runnable接口和Thread类实现。
请写明注释,实现得好的,我再加分。急....

public class ThreadTest {
public static boolean flag=false;//结束标志,是否己找到该去城市
public class MyTask implements Runnable{//定义任务 Runnable
String city="";//城市
int counter=0;//数过几次
public MyTask(String c){//构造器
this.city=c;
}
public void run(){
Random ran=new Random();//随机产生器
while(!flag){//没结果不停止
counter++;//计数加一
System.out.println("去城市:"+city);
int time=ran.nextInt(1000);//产生睡随机数
time=Math.abs(time);//保证时间为正数;
System.out.println("睡时间:"+time);
if(counter>9){//己数到10次
if(!flag){//如果对方没先数到,判断我先数到
flag=true;
System.out.println("应该的城市:"+city); }
}
try {
Thread.sleep(time);//开始睡眠
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

public static void main(String[] args) {
MyTask task1=new MyTask("上海");//生成上海任务
MyTask task2=new MyTask("北京");//生成北京任务
Thread thread1=new Thread(task1);//通过上海任务生成线程
Thread thread2=new Thread(task2);//通过北京任务生成线程
thread1.start();//启动上海线程
thread2.start();//启动北京线程
}

}

JAVA实现超长整数加法算法

public class MathAdd {

public static void main(String[] args){
String addA="30812";
String addB="208";
System.out.println(addA+"+"+addB+"="+strvalue(addA,addB));
}

public static String strvalue(String addA,String addB){
String strvalue="";
int lenA=addA.length();
int lenB=addB.length();
int templen=0;
//调整长度相同

if(lenA>=lenB){
templen=lenA-lenB;
addB=maxlen(addB,templen);
}else{
templen=lenB-lenA;
addA=maxlen(addA,templen);
}
char addcharA[]=addA.toCharArray();
char addcharB[]=addB.toCharArray();
int len=addcharA.length;
int valueC[]=new int[len];
for(int i=0;i<len;i++){

int a=Integer.parseInt(String.valueOf(addcharA[i]));
int b=Integer.parseInt(String.valueOf(addcharB[i]));
valueC[i]=a+b;
}//每项相加存储
int tmp=0;
//处理进位
for(int i=valueC.length-1;i>=0;i--){
if(valueC[i]>=10){
strvalue=String.valueOf(valueC[i]+tmp-10)+strvalue;
tmp=valueC[i]/10; 软件开发网 www.mscto.com
}else{
strvalue=String.valueOf(valueC[i]+tmp)+strvalue;
tmp=0;
}
}
return strvalue;
}

//调整长度,使其长度一样
private static String maxlen(String str,int templen){
String strmax=null;
StringBuffer buff=new StringBuffer();
for(int i=0;i<templen;i++){
buff.append("0");
}
strmax=buff.toString()+str;
return strmax;
}
}
转自:http://www.9292i.com/newarticle/wlbc/sort21/show-6555.html

编写一个JAVA程序,定义一个学生类Student,属性包含姓名,年龄,性别,根...
答:编写学生类Student,属性包含姓名,年龄,性别,根据该类分别创建五个学生对象,如下:public class Student {private String name;private int age;private String sex;public Student(String name,int age,String sex){this.name=name;this.age=age;this.sex=sex;}public static void main(String[] ar...

1、 编写一个Java程序,程序中有一个类Telephone, Telephone类中包含有...
答:1、 编写一个Java程序,程序中有一个类Telephone, Telephone类中包含有电话品牌、电话号码、通话时间、以及计算话费和显示信息等方法。另外,程序中还有另一个叫做Mobilephone,它具有Telephone类中的所有方法和属性,它还有自己的属性如网络类型、被叫时间,同... 展开 w69521580 | 浏览1742 次 |举报 我有更好的答案推...

在java中编写程序,定义一个学生类
答:import java.util.List;/ 编写一个Java应用程序,该程序包括3个类:定义一个学生类,Student有姓名,学号,选学的课程列表 定义一个课程类:课程名称,课程分数 (1)初始化一个学生,选择了三门课程,并添加到学生的属性中 (2)实现统计学生的总分功能 1.正确编写2个类(5分)2.统计学生的总分功能...

请自己编写任意一个JAVA程序,要求如下: (1)包括类、子类、继承、创建对...
答:class Animal{ int age;//属性 } class dog extends Animal{ //继承 String name;public dog(String name)//构造方法 {this.name=name;} } public class Test { public static void main(String args[]){ Dog d=new Dog("小黄");//建立对象 d.age=15; //从Animal继承过来的属性。属...

2.编写一个 Java 应用程序 Test 类,实现成员方法max(a,b)的重载。具体...
答:以下是一个 Java 应用程序 Test 类,实现了 max 方法的重载:public class Test { // 重载方法 max,用于比较两个整数并返回较大值 public int max(int a, int b) { return (a > b) ? a : b;} // 重载方法 max,用于比较两个双精度浮点数并返回较大值 public double max(double a,...

java编写一个程序,实现功能(定义一个类学生表示学生1. 增加学生2显示...
答:1.Student.java代码如下/** * 2016年5月12日上午11:03:22 * * @author 3306 TODO 建立学生实体类 * */public class Student { private String stuNo;// 学号 private String stuName;// 姓名 public Student() { super(); } public Student(String stuNo, String stu...

编写一个java应用程序,该程序中有3个类:Lader、Circle和主类Test...
答:;System.out.println("圆的面积是:"+s);} } //测试类 public class Test { / param args / public static void main(String[] args) { // TODO Auto-generated method stub Circle circle=new Circle(5);circle.area();Lader lader =new Lader(2,3,4);lader.area();} } ...

用JAVA编写一个程序,要求如下:
答:StudentTest类:(测试类)import java.util.Scanner;public class StudentTest {public static void main(String[] args) {Student student = new Student();Scanner sc = new Scanner(System.in);System.out.println("请输入姓名:");student.setName(sc.next());System.out.println("请输入性别...

编写一个Java程序,共有两个类
答:// Rectangle 类 / author JavaAlpha date 2011-10-12 version V 1.0 /public class Rectangle { private double width;private double height;private String color;//带有两个参数的构造方法 public Rectangle(double w, double h) { this.width = w;this.height = h;} //带有三个参数的...

自由编写一个Java程序(类)
答:import java.sql.*;//导入数据库包//这个类是用来连接数据库的,在些之前要先加载驱动public class DBConn { //连接数据库方法,类型为连接类 public Connection getConn() { //定义一个连接对象 Connection conn = null; try { //加载驱动 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); ...