java - 第一阶段总结    

    递归    

递归:能不用就不用,因为效率极低

package over;
//递归
public class Fi {
public static void main(String[] args) {
int num = f(7);
System.out.println(num);
}
public static int f(int n){
if(n==1 || n==2){
return 1;
}else{
return f(n-1)+f(n-2);
}
}
/*
* f7=f6(8)+f5(5)---------------------13
* f6=f5(5)+f4(3)------------------8
* f5=f4(3)+f3(2)---------------5
* f4=f3(2)+f2(1)------------3
* f3=f2(1)+f1(1)---------2
* f2------------------1
* f1------------------1
*/
}

不借助于第3个数,来交换两个数

package test.tang;

public class Test {
public static void main(String[] args) {
//------只适用于数字类型(整数类型),小数结果不准确
int a=5,b=8;
a = a+b; //a=13
b = a-b; //b=5
a = a-b; //a=8
System.out.println("a="+a);
System.out.println("b="+b);
}
}

关于a++, ++a 的循环

        /*
* 练习:
* 1.声明整型变量a并赋值为0
* a=a++,输出a的值-------0
* 2.声明整型变量b并赋值为0
* b=++b,输出b的值-------1
* 3.声明整型变量c并赋值为0
* for(int i=1;i<=100;i++){
* c=c++;
* }
* System.out.println(c);
* 4.声明整型变量d并赋值为0
* for(int i=1;i<=100;i++){
* d=++d;
* }
* System.out.println(d);
*/ /*
int a = 0;
//1.记录++a的值1
//2.a自增1变为1
//3.将记录++a的值1赋值给a
a = ++a;
System.out.println(a);
*/ /*
int a = 0;
//1.记录了a++的值0
//2.a自增1变为1
//3.将记录a++的值0赋值给a
a = a++;
System.out.println(a);
*/ /*
int a = 0;
for(int i=1;i<=100;i++){
a=++a;
}
System.out.println(a);
*/
/*
* a=++a;
* a=0
* i=1 a=1
* i=2 a=2
* i=3 a=3
* i=4 a=4
* ...
* i=100 a=100
*/ /*
* a=a++;
* a=0
* i=1 a=0
* i=2 a=0
* i=3 a=0
* i=4 a=0
* ...
* i=100 a=0
*/

注意的地方:

short s = 5;
s += 10; //系统自动帮助咱们做了强制类型转换
//s = s+10; //编译错误,必须自己强转

面向对象的设计思想:

1)对象、类:
  1.1)数据的封装--成员变量
  1.2)方法(操作数据)的封装

2.构造方法:给数据(成员变量)赋初值
  实例方法:操作对象的数据---与对象有关
  静态方法:操作参数的数据---与对象无关
  抽象方法:方法体没法写-----只能父类/接口中

3.继承:
  1)作用:代码复用
  2)很多类中有重复的代码时,设计父类来继承
    2.1)普通父类:没有抽象方法时
    2.2)抽象类:有抽象方法时
    2.3)接口:完全抽象方法时

4.设计规则:
  1)将公共的属性和行为,抽象到父类中
  2)所有子类方法的实现都一样-----普通方法
    所有子类方法的实现都不一样---抽象方法
  3)所有子类共有的,抽到父类中
    部分子类共有的,抽到接口中
    符合既是也是时,使用接口
    接口是对继承的单根性的扩展

1.何时需要Debug?

程序的运行结果,与你的预期结果不同时
  Debug的目的是找错误,而不是改错误

2.最早期调试就是打桩:
  System.out.println(???);

3.Debug调试步骤:
  1)先添加断点
  2)以调试模式来运行程序
  3)F5:单步调试(会进到方法中)
    F6:逐方法调试(不进到方法中)
    F7:结束方法的调试
    F8:直接跳到下一个断点
       若后面没有断点了则结束调试

4.看变量
    添加监视

在记事本中自己顺Shoot游戏中的类的结构

    FlyingObject,Enemy,Award,
Airplane,Bee,Bullet,Hero abstract class FlyingObject{
image,width,height,x,y
abstract void step(){}
abstract boolean outOfBounds(){} }
interface Enemy{
int getScore();
}
interface Award{
int getType();
}
class Airplane extends FlyingObject implements Enemy{
speed
Airplane(){}
boolean shootBy(){}
}
class Bee extends FlyingObject implements Award{
xSpeed,ySpeed,awardType
Bee(){}
boolean shootBy(){}
}
class Bullet extends FlyingObject{
speed
Bullet(){}
}
class Hero extends FlyingObject{
life,doubleFire,images,index
Hero(){}
Bullet[] shoot(){}
boolean hit(){}
}

java - 第一阶段总结的更多相关文章

  1. Java第一阶段总结

    学习java已经一个多月的时间了,第一阶段总算完成了. 这中间遇到很多问题,通过问同学问学长,收获了很多,但也知道自己和其他同学相差很远.他们java第一阶段只用了不到一个月的时间,而我拖了很长时间, ...

  2. Java第一阶段作业总结

    目录 0.前言 1.作业过程总结 2.OO设计心得 3.测试的理解与实践 4.课程收获 5.对课程的建议 前言 本次博客针对第一阶段的三次作业发表总结,作业要求主要是初学者对于Java的基本语法.用法 ...

  3. java第一阶段测试

    一.选择题(35题 * 2分)1. 下列代码编译和运行的结果是:C public static void main(String[] args) {   String[] elements = { & ...

  4. Java第一阶段项目实训

    时间:2016-3-27 17:09 银行综合业务平台业务需求 1.首页  ---------------银行综合业务平台------------------- 1开户     2登录    3.退出 ...

  5. 坚持:学习Java后台的第一阶段,我学习了那些知识

    最近的计划是业余时间学习Java后台方面的知识,发现学习的过程中,要学的东西真多啊,让我一下子感觉很遥远.但是还好我制定了计划,自己选择的路,跪着也要走完!关于计划是<终于,我还是下决心学Jav ...

  6. Java学习开发第一阶段总结

    前言: 按照学院的安排我专业应该在下学期学习Java课程,因为对技术的热爱,我选择了在本学期学习Java.俗话说得好“笨鸟先飞”,那我就先学习这门课程了. 第一阶段的学习总结: 在此次阶段任务相对比较 ...

  7. java 初学者 第一阶段作业编程总结及心得体会

    0.前言 第一阶段java作业分为3次. 第一次作业是简单得一些语法和一些简单得逻辑思维,主要内容有求三角形是什么三角形的,还有就是求坐标点所在范围的,也涉及到了数字和字母的转换,总之相相当于是给ja ...

  8. JAVA学习第一阶段(1)

    java入门第一阶段 1.在java中接受并保存用户输入的值: (1)import java.util.Scanner//引入包 (2)Scanner input=new Scanner (Syste ...

  9. JAVA EE 第一阶段考试

    在第一阶段中我们学习了Spring Struts2 Hibernate.虽然在外面的公司中,公司项目的框架中都不在使用Struts2了.他好像出现了不可修复的bug.但是在学校,依然还是要学习这个.在 ...

随机推荐

  1. JS性能优化笔记搜索整理

    通过网上查找资料了解关于性能优化方面的内容,现简单整理,仅供大家在优化的过程中参考使用,如有什么问题请及时提出,再做出相应的补充修改. 一. 让代码简洁:一些简略的表达方式也会产生很好的优化 eg:x ...

  2. SPFA算法

    SPFA算法 一.算法简介 SPFA(Shortest Path Faster Algorithm)算法是求单源最短路径的一种算法,它是Bellman-ford的队列优化,它是一种十分高效的最短路算法 ...

  3. InterBase数据库迁移到MySQL(数据导入)

    在这个脚本中我使用的是Python的ORM框架SQLAlchemy来连接远程的MySQL数据库的,在写这个脚本的时候为了方便参数的输入,我就给之前和这个脚本添加了一个新的功能,就是在调用这个脚本的时候 ...

  4. BZOJ1443: [JSOI2009]游戏Game

    如果没有不能走的格子的话,和BZOJ2463一样,直接判断是否能二分图匹配 现在有了一些不能走的格子 黑白染色后求出最大匹配 如果是完备匹配,则无论如何后手都能转移到1*2的另一端,故先手必输 否则的 ...

  5. java画图程序_图片用字母画出来_源码发布_版本二

    在上一个版本:java画图程序_图片用字母画出来_源码发布 基础上,增加了图片同比例缩放,使得大像素图片可以很好地显示画在Notepad++中. 项目结构: 运行效果1: 原图:http://imag ...

  6. ThinkPHP登录功能代码

    <?php /** * 后台登录控制器 */ Class LoginAction extends Action{ /** * 登录视图 */ Public function index(){ $ ...

  7. 清除BOM头源码

    BOM: Byte Order Mark UTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是 ...

  8. ZeroclipboardJS+flash实现将内容复制到剪贴板实例

    Zeroclipboard 的实现原理 Zeroclipboard 利用 Flash 进行复制,之前有 Clipboard Copy 解决方案,其利用的是一个隐藏的 Flash.但最新的 Flash ...

  9. HTML静态网页 格式与布局

    一.position:fixed 锁定位置(相对于浏览器的位置),例如有些网站的右下角的弹出窗口. 示例: 二.position:absolute  相对于自己最近的父元素来定位的 1.外层没有pos ...

  10. Spring 定时器

    <!-- 对定时任务进行引用 --> <bean id="schedulerFactory" class="org.springframework.sc ...