大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
项目结构如下:
成都网络公司-成都网站建设公司创新互联10余年经验成就非凡,专业从事成都网站设计、成都做网站、外贸网站建设,成都网页设计,成都网页制作,软文推广,广告投放等。10余年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:13518219792,我们期待您的来电!
代码如下
package main;
public class Course {
private String classNum;
private String credit;
private String startClassDate;
private String endClassDate;
private String teacher;
private String assessment;
public String getClassNum() {
return classNum;
}
public void setClassNum(String classNum) {
this.classNum = classNum;
}
public String getCredit() {
return credit;
}
public void setCredit(String credit) {
this.credit = credit;
}
public String getStartClassDate() {
return startClassDate;
}
public void setStartClassDate(String startClassDate) {
this.startClassDate = startClassDate;
}
public String getEndClassDate() {
return endClassDate;
}
public void setEndClassDate(String endClassDate) {
this.endClassDate = endClassDate;
}
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
public String getAssessment() {
return assessment;
}
public void setAssessment(String assessment) {
this.assessment = assessment;
}
@Override
public String toString() {
return " 课程号:" + classNum + ", 学分:" + credit
+ ", 上课时间:" + startClassDate + ", 下课时间:"
+ endClassDate + ", 教师:" + teacher + ", 考核方式:"
+ assessment + "";
}
}
package main;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
System.out.println("创建学生请输入姓名:");
Student stu1 = new Student();
stu1.setName(sc.nextLine());
Scanner sc1 = new Scanner(System.in);
System.out.println("创建学生请输入学号:");
stu1.setNumber(sc1.nextLine());
System.out.println("请选择课程,课程如下:");
ListCourse list2 = new ArrayListCourse();
stu1.setCourses(list2);
ListCourse list = readTxt();
for (Course course : list) {
System.out.println(course.toString());
}
for (int i = 1; i 5; i++) {
System.out.println("请输入第"+i+"个课程号:");
//输入第一个课程号
list2 = handleClass(list, list2);
System.err.println("已选择成功!");
list = notSelectClass(list, list2);
System.out.println("请选择课程,课程如下:");
if(i==4){
break;
}
for (Course course : list) {
System.out.println(course.toString());
}
}
System.out.println("课程已选完!结果如下:");
System.err.println("学生:"+stu1.getName()+":");
for (Course course : list2) {
System.err.println(course.toString());
}
}
/**
*
* 查看未选择可选课程
* @param list 全部可选课程
* @param list2 已选课程
* @return
*/
private static ListCourse notSelectClass(ListCourse list,ListCourse list2){
for (int i = 0; i list.size(); i++) {
for (Course course : list2) {
//把已选课程剔除
if(course.getClassNum().equals(list.get(i).getClassNum())){
list.remove(i);
continue;
}
//把时间重合课程剔除 startdate1 =enddate2 and enddate1=startdate2
if(daYuDengYu(course.getEndClassDate(),list.get(i).getStartClassDate())daYuDengYu(list.get(i).getEndClassDate(), course.getStartClassDate())){
list.remove(i);
}
}
}
return list;
}
public static boolean daYuDengYu(String first, String second){
BigDecimal bd1 = new BigDecimal(first);
BigDecimal bd2 = new BigDecimal(second);
return bd1点抗 pareTo(bd2)=0?true:false;
}
/**
* 处理选择课程
* @param list
* @param list2
* @return
*/
private static ListCourse handleClass(ListCourse list,ListCourse list2){
while (true) {
Scanner sssi = new Scanner(System.in);
String num = sssi.nextLine().trim();
for (Course course : list) {
if(num.equals(course.getClassNum())){
list2.add(course);
return list2;
}
}
System.out.println("课程号输入错误,请重新输入:");
}
}
/**
* 读取txt获取课程 每个课程按;分割每个属性按,分割
* @return
* @throws Exception
*/
private static ListCourse readTxt() throws Exception{
/* 读入TXT文件 */
String pathname = Main.class.getResource("/").toString();
pathname = pathname.substring(6, pathname.length()-4)+"/src/classs/class.txt"; //获取绝对路径
File filename = new File(pathname); // 要读取以上路径的txt文件
ListCourse list = new ArrayListCourse();
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(filename));
//读取文件内容
byte[] b = new byte[bis.available()];
bis.read(b);
if(b!=null){
String [] strs= new String(b).split(";");
if (strs==null) {
return null;
}
for (String string : strs) {
String[] str = string.split(",");
Course course = new Course();
course.setAssessment(str[5].trim());
course.setClassNum(str[0].trim());
course.setCredit(str[1].trim());
course.setEndClassDate(str[3].trim());
course.setStartClassDate(str[2].trim());
course.setTeacher(str[4].trim());
list.add(course);
}
}
bis.close();//关闭流(关闭bis就可以了)
return list;
}
}
package main;
import java.util.List;
public class Student {
private String name;
private String number;
private ListCourse courses;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public ListCourse getCourses() {
return courses;
}
public void setCourses(ListCourse courses) {
this.courses = courses;
}
}
001,1,7,8,Joyce,assignment;
002,1,8,9,Joyce,assignment;
003,1,12,15,Joyce,assignment;
004,1,18,19,Joyce,assignment;
005,1,7,8,LI,assignment;
006,1,8,9,LI,assignment;
007,1,12,15,LI,assignment;
008,1,18,19,LI,assignment;
一共 17 章
强烈建议你去买这本书!虽然电子文档很多,百度一下到处都是,但是不很方便!这本书看了真的思想都变了!!
第1章 对象入门
1.1 抽象的进步
1.2 对象的接口
1.3 实现方案的隐藏
1.4 方案的重复使用
1.5 继承:重新使用接口
1.5.1 改善基础类
1.5.2 等价和类似关系
1.6 多形对象的互换使用
1.6.1 动态绑定
1.6.2 抽象的基础类和接口
1.7 对象的创建和存在时间
1.7.1 集合与继承器
1.7.2 单根结构
1.7.3 集合库与方便使用集合
1.7.4 清除时的困境:由谁负责清除?
1.8 违例控制:解决错误
1.9 多线程
1.10 永久性
1.11 Java和因特网
1.11.1 什么是Web?
1.11.2 客户端编程
1.11.3 服务器端编程
1.11.4 一个独立的领域:应用程序
1.12 分析和设计
1.12.1 不要迷失
1.12.2 阶段0:拟出一个计划
1.12.3 阶段1:要制作什么?
1.12.4 阶段2:开始构建?
1.12.5 阶段3:正式创建
1.12.6 阶段4:校订
1.12.7 计划的回报
1.13 Java还是C++?
第2章 一切都是对象
2.1 用句柄操纵对象
2.2 必须创建所有对象
2.2.1 保存在什么地方
2.2.2 特殊情况:主类型
2.2.3 Java中的数组
2.3 绝对不要清除对象
2.3.1 作用域
2.3.2 对象的作用域
2.4 新建数据类型:类
2.4.1 字段和方法
2.5 方法、自变量和返回值
2.5.1 自变量列表
2.6 构建Java程序
2.6.1 名字的可见性
2.6.2 使用其他组件
2.6.3 static关键字
2.7 我们的第一个Java程序
2.8 注释和嵌入文档
2.8.1 注释文档
2.8.2 具体语法
2.8.3 嵌入HTML
2.8.4 @see:引用其他类
2.8.5 类文档标记
2.8.6 变量文档标记
2.8.7 方法文档标记
2.8.8 文档示例
2.9 编码样式
2.10 总结
2.11 练习
第3章 控制程序流程
3.1 使用Java运算符
3.1.1 优先级
3.1.2 赋值
3.1.3 算术运算符
3.1.4 自动递增和递减
3.1.5 关系运算符
3.1.6 逻辑运算符
3.1.7 按位运算符
3.1.8 移位运算符
3.1.9 三元if-else运算符
3.1.10 逗号运算符
3.1.11 字串运算符+
3.1.12 运算符常规操作规则
3.1.13 造型运算符
3.1.14 Java没有“sizeof”
3.1.15 复习计算顺序
3.1.16 运算符总结
3.2 执行控制
3.2.1 真和假
3.2.2 if-else
3.2.3 反复
3.2.4 do-while
3.2.5 for
3.2.6 中断和继续
3.2.7 切换
3.3 总结
3.4 练习
第4章 初始化和清除
4.1 由构建器保证初始化
4.2 方法过载
4.2.1 区分过载方法
4.2.2 主类型的过载
4.2.3 返回值过载
4.2.4 默认构建器
4.2.5 this关键字
4.3 清除:收尾和垃圾收集
4.3.1 finalize()用途何在
4.3.2 必须执行清除
4.4 成员初始化
4.4.1 规定初始化
4.4.2 构建器初始化
4.5 数组初始化
4.5.1 多维数组
4.6 总结
4.7 练习
第5章 隐藏实施过程
5.1 包:库单元
5.1.1 创建独一无二的包名
5.1.2 自定义工具库
5.1.3 利用导入改变行为
5.1.4 包的停用
5.2 Java访问指示符
5.2.1 “友好的”
5.2.2 public:接口访问
5.2.3 private:不能接触
5.2.4 protected:“友好的一种”
5.3 接口与实现
5.4 类访问
5.5 总结
5.6 练习
第6章 类再生
6.1 合成的语法
6.2 继承的语法
6.2.1 初始化基础类
6.3 合成与继承的结合
6.3.1 确保正确的清除
6.3.2 名字的隐藏
6.4 到底选择合成还是继承
6.5 protected
6.6 递增开发
6.7 上溯造型
6.7.1 何谓“上溯造型”?
6.8 final关键字
6.8.1 final数据
6.8.2 final方法
6.8.3 final类
6.8.4 final的注意事项
6.9 初始化和类装载
6.9.1 继承初始化
6.10 总结
6.11 练习
第7章 多形性
7.1 上溯造型
7.1.1 为什么要上溯造型
7.2 深入理解
7.2.1 方法调用的绑定
7.2.2 产生正确的行为
7.2.3 扩展性
7.3 覆盖与过载
7.4 抽象类和方法
7.5 接口
7.5.1 Java的“多重继承”
7.5.2 通过继承扩展接口
7.5.3 常数分组
7.5.4 初始化接口中的字段
7.6 内部类
7.6.1 内部类和上溯造型
7.6.2 方法和作用域中的内部类
7.6.3 链接到外部类
7.6.4 static内部类
7.6.5 引用外部类对象
7.6.6 从内部类继承
7.6.7 内部类可以覆盖吗?
7.6.8 内部类标识符
7.6.9 为什么要用内部类:控制框架
7.7 构建器和多形性
7.7.1 构建器的调用顺序
7.7.2 继承和finalize()
7.7.3 构建器内部的多形性方法的行为
7.8 通过继承进行设计
7.8.1 纯继承与扩展
7.8.2 下溯造型与运行期类型标识
7.9 总结
7.10 练习
第8章 对象的容纳
8.1 数组
8.1.1 数组和第一类对象
8.1.2 数组的返回
8.2 集合
8.2.1 缺点:类型未知
8.3 枚举器(反复器)
8.4 集合的类型
8.4.1 Vector
8.4.2 BitSet
8.4.3 Stack
8.4.4 Hashtable
8.4.5 再论枚举器
8.5 排序
8.6 通用集合库
8.7 新集合
8.7.1 使用Collections
8.7.2 使用Lists
8.7.3 使用Sets
8.7.4 使用Maps
8.7.5 决定实施方案
8.7.6 未支持的操作
8.7.7 排序和搜索
8.7.8 实用工具
8.8 总结
8.9 练习
第9章 违例差错控制
9.1 基本违例
9.1.1 违例自变量
9.2 违例的捕获
9.2.1 try块
9.2.2 违例控制器
9.2.3 违例规范
9.2.4 捕获所有违例
9.2.5 重新“掷”出违例
9.3 标准Java违例
9.3.1 RuntimeException的特殊情况
9.4 创建自己的违例
9.5 违例的限制
9.6 用finally清除
9.6.1 用finally做什么
9.6.2 缺点:丢失的违例
9.7 构建器
9.8 违例匹配
9.8.1 违例准则
9.9 总结
9.10 练习
第10章 Java IO系统
10.1 输入和输出
10.1.1 InputStream的类型
10.1.2 OutputStream的类型
10.2 增添属性和有用的接口
10.2.1 通过FilterInputStream从InputStream里读入数据
10.2.2 通过FilterOutputStream向OutputStream里写入数据
10.3 本身的缺陷:RandomAccessFile
10.4 File类
10.4.1 目录列表器
10.4.2 检查与创建目录
10.5 IO流的典型应用
10.5.1 输入流
10.5.2 输出流
10.5.3 快捷文件处理
10.5.4 从标准输入中读取数据
10.5.5 管道数据流
10.6 StreamTokenizer
10.6.1 StringTokenizer
10.7 Java 1.1的IO流
10.7.1 数据的发起与接收
10.7.2 修改数据流的行为
10.7.3 未改变的类
10.7.4 一个例子
10.7.5 重定向标准IO
10.8 压缩
10.8.1 用GZIP进行简单压缩
10.8.2 用Zip进行多文件保存
10.8.3 Java归档(jar)实用程序
10.9 对象串联
10.9.1 寻找类
10.9.2 序列化的控制
10.9.3 利用“持久性”
10.10 总结
10.11 练习
第11章 运行期类型鉴定
11.1 对RTTI的需要
11.1.1 Class对象
11.1.2 造型前的检查
11.2 RTTI语法
11.3 反射:运行期类信息
11.3.1 一个类方法提取器
11.4 总结
11.5 练习
第12章 传递和返回对象
12.1 传递句柄
12.1.1 别名问题
12.2 制作本地副本
12.2.1 按值传递
12.2.2 克隆对象
12.2.3 使类具有克隆能力
12.2.4 成功的克隆
12.2.5 Object.clone()的效果
12.2.6 克隆合成对象
12.2.7 用Vector进行深层复制
12.2.8 通过序列化进行深层复制
12.2.9 使克隆具有更大的深度
12.2.10 为什么有这个奇怪的设计
12.3 克隆的控制
12.3.1 副本构建器
12.4 只读类
12.4.1 创建只读类
12.4.2 “一成不变”的弊端
12.4.3 不变字串
12.4.4 String和StringBuffer类
12.4.5 字串的特殊性
12.5 总结
12.6 练习
第13章 创建窗口和程序片
13.1 为何要用AWT?
13.2 基本程序片
13.2.1 程序片的测试
13.2.2 一个更图形化的例子
13.2.3 框架方法的演示
13.3 制作按钮
13.4 捕获事件
13.5 文本字段
13.6 文本区域
13.7 标签
13.8 复选框
13.9 单选钮
13.10 下拉列表
13.11 列表框
13.11.1 handleEvent()
13.12 布局的控制
13.12.1 FlowLayout
13.12.2 BorderLayout
13.12.3 GridLayout
13.12.4 CardLayout
13.12.5 GridBagLayout
13.13 action的替用品
13.14 程序片的局限
13.14.1 程序片的优点
13.15 视窗化应用
13.15.1 菜单
13.15.2 对话框
13.16 新型AWT
13.16.1 新的事件模型
13.16.2 事件和接收者类型
13.16.3 用Java 1.1 AWT制作窗口和程序片
13.16.4 再探早期示例
13.16.5 动态绑定事件
13.16.6 将商业逻辑与UI逻辑区分开
13.16.7 推荐编码方法
13.17 Java 1.1 UI API
13.17.1 桌面颜色
13.17.2 打印
13.17.3 剪贴板
13.18 可视编程和Beans
13.18.1 什么是Bean
13.18.2 用Introspector提取BeanInfo
13.18.3 一个更复杂的Bean
13.18.4 Bean的封装
13.18.5 更复杂的Bean支持
13.18.6 Bean更多的知识
13.19 Swing入门
13.19.1 Swing有哪些优点
13.19.2 方便的转换
13.19.3 显示框架
13.19.4 工具提示
13.19.5 边框
13.19.6 按钮
13.19.7 按钮组
13.19.8 图标
13.19.9 菜单
13.19.10 弹出式菜单
13.19.11 列表框和组合框
13.19.12 滑杆和进度指示条
13.19.13 树
13.19.14 表格
13.19.15 卡片式对话框
13.19.16 Swing消息框
13.19.17 Swing更多的知识
13.20 总结
13.21 练习
第14章 多线程
14.1 反应灵敏的用户界面
14.1.1 从线程继承
14.1.2 针对用户界面的多线程
14.1.3 用主类合并线程
14.1.4 制作多个线程
14.1.5 Daemon线程
14.2 共享有限的资源
14.2.1 资源访问的错误方法
14.2.2 Java如何共享资源
14.2.3 回顾Java Beans
14.3 堵塞
14.3.1 为何会堵塞
14.3.2 死锁
14.4 优先级
14.4.1 线程组
14.5 回顾runnable
14.5.1 过多的线程
14.6 总结
14.7 练习
第15章 网络编程
15.1 机器的标识
15.1.1 服务器和客户机
15.1.2 端口:机器内独一无二的场所
15.2 套接字
15.2.1 一个简单的服务器和客户机程序
15.3 服务多个客户
15.4 数据报
15.5 一个Web应用
15.5.1 服务器应用
15.5.2 NameSender程序片
15.5.3 15.5.3 要注意的问题
15.6 Java与CGI的沟通
15.6.1 CGI数据的编码
15.6.2 程序片
15.6.3 用C++写的CGI程序
15.6.4 POST的概念
15.7 用JDBC连接数据库
15.7.1 获得学习示例
15.7.2 查找程序的GUI版本
15.7.3 JDBC API为何如何复杂
15.8 远程方法
15.8.1 远程接口概念
15.8.2 远程接口的实施
15.8.3 创建根与干
15.8.4 使用远程对象
15.8.5 RMI的替选方案
15.9 总结
15.10 练习
第16章 设计范式
16.1 范式的概念
16.1.1 单子
16.1.2 范式分类
16.2 观察器范式
16.3 模拟垃圾回收站
16.4 改进设计
16.4.1 “制作更多的对象”
16.4.2 用于原型创建的一个范式
16.5 抽象的应用
16.6 多重派遣
16.6.1 实现双重派遣
16.7 访问器范式
16.8 RTTI有害吗
16.9 总结
16.10 练习
第17章 项目
17.1 文字处理
17.1.1 提取代码列表
17.1.2 检查大小写样式
17.2 方法查找工具
17.3 复杂性理论
17.4 总结
17.5 练习
编程思想的形成,靠的是去实践,去练习不知道你java现在学到什么程度了我就从头说起吧 首先学习的是java的特性(安全,跨平台),学习java的语法,一些常用的类等等这时候你可以做一些简单的练习比如书上的例子你写到电脑上,运行,看看结果,一句一句的分析。每行代码干什么的,然后试着去改变变量的值,修改一些语句。慢慢培养自己,熟悉java。但是要注意!你写的根本就不是java程序,为什么呢?你根本就没有用到java的特点,比如类,继承,封装,多态....没有这些,就是C语言用java语法写了一遍。熟练的掌握java的基础知识,这样你就可以试着写小程序了,推荐你写一些游戏,慢慢培养自己设计的能力。比如扫雷游戏吧,整个游戏要分为几个部分,计时器,计雷器,雷区,界面,菜单....在将功能细化,比如每一个雷块都是一个对象。。。对象有许多的方法。。。。慢慢的培养自己面向对象程序设计的思路。 一个完整的程序写成了,你就会对编程有自己的把握了,你就可以试着写更大项目。慢慢的你就成了老鸟。。。回过头看自己刚学java的时候写的游戏,就会发现架构不好,设计不好,代码重用度不好,扩展性不好。。。。 学java不难,只要肯坚持,多用头脑去思考,也别想着一口吃成胖子
运行的时候带上参数,格式如下:
java 类名 参数名
举一个简单的例子:
1、代码如下:
public class Demo {
public static void main(String[] args) {
for (int i = 0; i args.length; i++) {
System.out.println(args[i]);
}
}
}
2、使用javac Demo.java编译:
3、这一步是最关键的部分,也是你的问题中的疑惑部分,使用java带参数运行,并输出参数,具体操作及结果如下: