Java
风笙
这个作者很懒,什么都没留下…
展开
-
18.1.21 1.1第一个 Java 程序
ecipse安装: 打开 java.oracle.com (Java 官网)点击 Java SE,点击 JRE ,选择 windows-X64_bin.exe 下载运行该文件,安装 Java 环境打开 www.eclipse.com选择 Java IDE 并下载解压后运行 eclipse.exe点击右上角的 Workbench 写代码 第一个程序: 点击File->New->Jav原创 2018-01-21 20:41:30 · 124 阅读 · 0 评论 -
18.2.11(2) 2.对象交互2.1对象交互
简易的时钟程序: public class Display { int limit=0; int value=0; Display(int limit){ this.limit=limit; } int getValue() { return value; } void increase() { value++; if(value==limit) valu...原创 2018-02-27 19:44:50 · 127 阅读 · 0 评论 -
18.2.26 2.2访问属性2.3包
对象=属性+服务数据:属性或状态操作:函数把数据和对数据的操作放在一起–>封装private:只有这个类的内部可以访问类内部指类的成员函数和定义初始值这个限制是对类的而不是对对象的编译单元:一个源代码文件(.java)一次对一个编译单元做编译包:import.<包的名字>.<类的名字>;import.<包的名字>.*;//全部包的名字中的.意为文件夹层次转...原创 2018-02-27 19:45:32 · 114 阅读 · 0 评论 -
18.2.27 2.4类变量+周测试
2.4类变量在java中,类变量(也叫静态变量)是类中独立于方法之外的变量,用static 修饰。(static表示“全局的”、“静态的”,用来修饰成员变量和成员方法,或静态代码块(静态代码块独立于类成员,jvm加载类时会执行静态代码块,每个代码块只执行一次,按顺序执行))。练习题:题目如下:有秒计时的数字时钟(10分)题目内容:这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成。但是我们...原创 2018-02-27 19:46:12 · 152 阅读 · 0 评论 -
18.2.27 第三周 对象容器 3.1顺序容器
private ArrayList <String> notes=new ArrayList<String>();用来存放String的ArrayList容器类有两个类型容器的类型元素的类型import java.util.ArrayList; public class Notebook { private ArrayList <String> notes=...原创 2018-02-27 21:11:08 · 161 阅读 · 0 评论 -
18.3.7 第5周 设计原则 5.1城堡游戏+5.2消除代码赋值+5.3封装
首先贴出未修改的代码Game.javapackage castle; import java.util.Scanner; public class Game { private Room currentRoom; public Game() { createRooms(); } private void create...原创 2018-03-07 21:10:27 · 312 阅读 · 0 评论 -
18.3.8 5.4可扩展性+5.5框架加数据+5.6类型系统
5.4可扩展性用接口来实现聚合给Room类实现的新方法,把方向细节彻底隐藏在Room类内部了今后方向如何实现就和外部无关了用容器来实现灵活性Room的方向是用成员变量来表示的,增加或减少方向就要改变代码如果用Hash表来表示方向,那么方向就不是硬编码的了5.5框架加数据以框架加数据来提高可扩展性命令的解析是否可以脱离if-else定义一个Handler来处理命令用Hash表来保存命令和Handle...原创 2018-03-08 15:54:34 · 160 阅读 · 0 评论 -
18.3.8(2)第六周 抽象与接口 6.1抽象+6.2数据与表现分离:细胞自动机
6.1抽象我们用abstract关键字来定义抽象类。抽象类的作用仅仅是表达接口,而不是具体的实现细节。抽象类中可以存在抽象方法。抽象方法也是使用abstract关键字来修饰。抽象的方法是不完全的,它只是一个方法签名而完全没有方法体。如果一个类有了一个抽象的方法,这个类就必须声明为抽象类。如果父类是抽象类,那么子类必须覆盖所有在父类中的抽象方法,否则子类也成为一个抽象类。一个抽象类可以没有任何抽象方...原创 2018-03-08 17:03:25 · 140 阅读 · 0 评论 -
18.3.1 3.2对象数组 3.3集合容器 3.4散列表
3.2对象数组String a=new String[10];每个格子都是String类的管理者对象数组中,每个元素都是对象的管理者而非对象本身。3.3集合容器HandSet <String> s=new HandSet <String>();集合中,无重复元素System.out.println(s);3.4散列表(Hash)private HandMap<Inte...原创 2018-03-01 23:54:05 · 99 阅读 · 0 评论 -
18.3.2 第三周练习
查找里程(10分)题目内容:题目内容:下图为国内主要城市之间的公路里程:你的程序要读入这样的一张表,然后,根据输入的两个城市的名称,给出这两个城市之间的里程。注意:任何两个城市之间的里程都已经给出,不需要计算经第三地中转。注意:你并不需要去录入上图的数据,数据是在程序输入中给的。输入格式:首先,你会读到若干个城市的名字。每个名字都只是一个英文单词,中间不含空格或其他符号。当读到名字为“###”(三...原创 2018-03-02 16:31:28 · 169 阅读 · 0 评论 -
18.3.10 6.3接口+第七周 控制反转与MVC模式 7.1控制反转+7.2MVC
6.3接口 接口是纯抽象类所有的成员函数都是抽象函数所有的成员变量都是public static final接口规定了长什么样,但是不管里面有什么关键字:implements实现接口:类用extends,接口用implements类可以实现很多接口接口可以继承接口,但不能继承类接口不能实现接口面向接口的编程方式设计程序时先定义接口,再实现类任何需要在函数间传入传出的一定是接口而不是具体的类是Jav...原创 2018-03-10 17:14:33 · 151 阅读 · 0 评论 -
18.3.3 第四章 4.1继承(1)
Database.java:package demo; import java.util.ArrayList; public class Database { private ArrayList<CD> listCD=new ArrayList<CD>(); private ArrayList<DVD> listDVD=new ArrayList<...原创 2018-03-03 21:01:00 · 132 阅读 · 0 评论 -
18.3.5 4.1继承(2)+4.2子类父类关系
4.1继承(2)我们把用来做基础派生其它类的那个类叫做父类、超类或者基类,而派生出来的新类叫做子类。Java用关键字extends表示这种继承/派生关系:class ThisClass extends SuperClass { //… }继承表达了一种is-a关系,就是说,子类的对象可以被看作是父类的对象。比如鸡是从鸟派生出来的,因此任何一只都可以被称作是一只鸟。但是反过来不行,有些鸟是...原创 2018-03-05 20:37:57 · 169 阅读 · 0 评论 -
18.2.11 面向对象的理解
public class Animals { public static void main(String[] args) { Dog xiaomianyang=new Dog(); xiaomianyang.eating(); xiaomianyang.sleeping(); Cat mimi=new Cat(2,4); mimi.Do(); } } class Do...原创 2018-02-27 19:44:14 · 92 阅读 · 0 评论 -
18.2.8(2)第一周练习题
题目内容:设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。这个类的构造函数是:Fraction(int a, int b)构造一个a/b的分数。这个类要提供以下的功能:double toDouble();将分数转换为doubleFraction plus(Fraction r);将自己的分数和r的分数相加,产生一个新的Fraction的对象。注意小学四年级学过...原创 2018-02-27 19:43:30 · 135 阅读 · 0 评论 -
18.1.22 1.2变量与计算
定义变量: int price变量的名称是一种标识符标识符只能由字母、数字、下划线组成,数字不可以出现在第一位。Java的关键字不可用做标识符 定义常量: finial int amount=100; package hello; import java.util.Scanner; public class Hello { public static void main(Str原创 2018-01-22 22:34:33 · 121 阅读 · 0 评论 -
18.1.30 6.使用对象
字符类型: char c=’\u0041’或者char c=65或者char c=’a’可以代表一个字符。其中0041是十六进制数,在Unicode中代表的含义是A 字符可以被比较大小,依据是Unicode表中的编号 逃逸字符: \b 回退一格\t 到下一个表格位\n 换行\r 回车\” 双引号\’ 单引号\\ 反斜杠 包裹类型: 基础类型 包裹类型: boolean原创 2018-01-31 00:41:11 · 250 阅读 · 0 评论 -
18.1.31 7.函数
函数是一块代码,接收零个或多个参数,做一件事情,并且返回零个或一个值。 函数头: public static void sum(int a,int b) 调用函数: 函数名(参数值); Java语言在调用函数时,永远只能传值给函数。 package hello; import java.util.Scanner; public class Hello { public static原创 2018-01-31 10:54:12 · 104 阅读 · 0 评论 -
2018.1.23 1.3浮点数计算
浮点数: 带小数点的数值,浮点这个词的本意是指小数点是浮动的,是计算机内部表达非整数(包含分数和无理数)的一种方式。人们借浮点数表达所有带小数点的数。 当浮点数和整数放在一起运算时,Java会把整数转换为浮点数进行运算。 强制类型转换: 如果想把一个浮点型的小数部分去掉,变成整数 int i=32/3.0; //int i=(int)(32/3.0);(类型)值 double原创 2018-01-23 23:53:22 · 233 阅读 · 0 评论 -
18.1.24 2.1比较+2.2判断
关系运算 结果为true或者false 判断是否相等的==或!=的优先级比其他的低,而连续的关系运算符是从左往右进行的 例如: 5>3==6>4 true6>5>4 语法错误a==b==truea==b==6 语法错误a==b>false 语法错误(a==b)>false 语法错误 1==1.0 但是:1.0不等于0.1+0.1+原创 2018-01-24 23:24:46 · 128 阅读 · 0 评论 -
18.1.25 2.3分支+3循环
分支: 运用if…else if…else语句。 运用switch-case语句(记得写break)。 循环: while语句、do-while语句(while后面的分号不能忘) 补充: 在Java里面,表示随机数用Math.random(),Math.random()表示的范围是[0,1),如果要表示[1,100]的整数,可用(int)(Math.random()*100+1)原创 2018-01-25 17:07:15 · 402 阅读 · 0 评论 -
18.1.26 4.循环控制
在循环前可以放一个标号来标示循环 label: 带标号的 break 和 continue 对那个循环起作用 break label; boolean型:值只有 true 和 false 逻辑运算符的优先级:!>&&>|| !的优先级是很高的,例如:!age>20——应该先算!age,但是这句话是语法错误,!后面只能跟逻辑型 若要规定小数点后精确几位数,则输出的格式:Sy原创 2018-01-26 17:34:38 · 128 阅读 · 0 评论 -
18.1.27 5(1)数组
定义数组: int[] numbers=new int[100]; [] =new [元素个数]; 可以动态创建数组数组有内部成员length,会告诉你元素个数遍历数组for(int i=0;i也可以直接初始化数组int[]={87,88,11,22} int[] a=new int[5]; a[0]=5; int[] b=a;//让a和b共同管理这个数组 System.out.prin原创 2018-01-27 23:04:16 · 107 阅读 · 0 评论 -
18.1.29 数组(2)
for-each循环: for(int k:data){……} 二维数组: int[][] a=new int[3][5]; int [][] a={ {1,2,3,4}, {1,2,3}, //最后一个逗号可以写,古老的传统 }; 此时,a.length表示存几行,a[i].length表示第i行有几列。 井字棋游戏代码: package hello; import原创 2018-01-29 20:47:41 · 104 阅读 · 0 评论 -
18.1.29 补充(修改代码)
记得刚刚吐槽了半天那个不知道哪里出了bug的代码…… 自己被搞得要死要活的…… 终于,在我舍友的帮助下,找出了bug……真的是坑……为了保留此修改记录,我原来的错误代码不删除。 错误点: b[][num]越界了!编译器竟然不报错。。。真的是无奈cha变量在循环时没有刷新……这个后来我自己debug的时候发现了我!多!加!了!一!个!感!叹!号!!哇。。。真的委屈,这个小错误真的难找,编原创 2018-01-29 23:29:32 · 173 阅读 · 0 评论 -
18.1.31(2) 面向对象 一、类和对象 1.1用类制造对象
对象和类:对象是实体,需要被创建,可以为我们做事情类是规范,根据类的定义来创建对象例如:对象:这只猫表达东西或事件运行时响应消息(提供服务)类(猫)定义所有猫的属性就是Java中的类型可以用来定义变量对象=属性+服务:数据:属性或状态操作:函数把数据和对数据的操作放在一起——>封装根据课程中提供的制图代码,我自己根据代码也作了张图:Mypic.java:package shapes; pu...原创 2018-02-27 19:41:44 · 276 阅读 · 0 评论 -
18.2.8 1.2定义类+1.3成员变量与成员函数+1.4对象初始化
emmmmmm浪了太多天了,吃了好多好吃的……学习也搁置了……咳咳咳,今天开始赶进度吧~1.2定义类new VendingMachine();VendingMachine v=new VendingMachine(); 对象变量是对象的管理者让对象做事:.运算符v.insertMoney();v.getfood();1.3成员变量与成员函数成员变量类定于了对象中,所具有的变量,这些变量称为成员变量...原创 2018-02-27 19:42:45 · 167 阅读 · 0 评论 -
18.3.6 4.3多态变量与向上造型+4.4多态+4.5系统类型
4.3多态变量和向上造型类定义了类型,DVD类所创建的对象的类型就是DVD。类可以有子类,所以由那些类定义的类型可以有子类型。在DoME的例子中,DVD类型就是Item类型的子类型。子类型类似于类的层次,类型也构成了类型层次。子类所定义的类型是其超类的类型的子类型。当把一个对象赋值给一个变量时,对象的类型必须与变量的类型相匹配,如:Car myCar = new Car();是一个有效的赋值,因为...原创 2018-03-06 16:51:57 · 143 阅读 · 0 评论