java - 第一阶段总结

    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(){}
}
时间: 2025-01-02 14:17:28

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

JAVA第一阶段知识点总结

JAVA程序运行过程: 1.编译javac:把java源文件编译成class字节码文件. 2.运行java:运行class文件. 标识符(给类.方法.变量起名): 1.以字母(采用Unicode字符集).下划线.$开头 2.其余部分可以是:字母(采用Unicode字符集).下划线.$.数字 3.不能为关键字 变量: 1.局部变量 定义在方法内或语句块内. 2.成员变量(实例变量 field) 定义在类里面.方法外面. 从属于对象! 3.静态变量(类变量) 定义在类里面.方法外面.使用static

黑马程序员____第一阶段Java开发前奏(1)

  黑马程序员____第一阶段Java开发前奏(1) ⒈软件开发:        软件是由一系列按照特定顺序组织的计算机数据和指令的集合,软件开发就是制作软件.软件的出现实现了人与计算机之间的交互.    ⒉人机交互方式:        图形化界面和命令行方式,图形化界面简单直观,使用者易于接受,容易上手操作.命令行方式需要有一个控制台,输入特定的指          令,让计算机完成一些操作,较为麻烦,需要记住一些命令.    3.常用的DOS命令:     dir:列出当前目录下的文件以及文

Java第一章----Java概述+环境搭建

写在前面的话: Java基础的东西看过好几遍,但是过一段都就忘记了,所以这次我决定花费一些时间整理一个系列博客供以后方便查阅.此系列根据Java编程思想+Java核心技术两本书整理而来,这两本书也是我极力推荐大家看的两本,因为每次看都有不同的收获,两本横向看相辅相成定会让你受益匪浅,好了敬请期待吧! 第一节:Java简介 Java是由Sun公司在1995年5月推出的一种面向对象的编程语言,极好的实现了面向对象理论,更加注重对象的本身不用太关注事件的过程. Java通过Java编程语言+Java类

第一阶段总结

第一阶段的冲刺结束了,历时6天,我感觉第一阶段最大的感触就是学的没有方向感觉自己经过这十天的团队项目合作练习,我确定了好好补补以前的知识例如java还有就是团队的重要性,这里不是某一个人的英雄主义行为,一个人的力量再强大,也不如团队的力量强大,不过我们似乎没有把团队的力量发挥到极致,刚开始我们的热情还很高涨,不过经过几天的磨合,由于项目进展不大,逐渐产生了动摇的想法,想换个题目,不过后来仔细想了一下,我们的课题还是挺好的,只是没有认真分析讨论,我们的集体合作时间很少,除了每天站立会议那十几分钟,

自我总结(六)---(学习j2ee+j2ee第一阶段项目)

自我完善的过程就是在不断的自我总结不断的改进. 学习了Struts2 Spring Hibernate. 十天前结束了这个课程.也考试了.这次考试老师说机试考的还不错.其实就是一个简单的用户登录,进行一个增删改的功能.因为实在元旦过后来就考试嘛!我是在元旦期间的时候也做了增删改的一个作业.所以在考试的时候也就快一些.但是在考试的时候也遇到一个问题,由于少导入了一个包,我的验证就不行了.我把这样写的运用到我后面的项目区就完全不行了.这是我最搞不明白的事.笔试题刚刚及格.课程结束了. 但是对于ssh

基于Spark构建开放式的云计算平台第一阶段课程

在2014年6月30日到7月2日举行的Spark Summit是整个云计算大数据领域的Big Event,在会议上DataBricks公司提出了构建开放的Cloud平台,而且宣布该平台完全基于Spark,该平台功能类似于EC2,但比EC2更快.更灵活.更易用. 构建一个开发的云服务平台,需要存储技术.计算平台.消息驱动框架和开发API架构设计等,所以我们把课程主要分为两个阶段:1,Spark技术实战:2,构建开发云平他的消息驱动框架和开放API设计实现: 本课程是是整个系列课程的第一阶段课程,采

PHP自学,第一阶段,基础学习

环境搭建OS X系统上 Win7运行OS X虚拟机 在 OS X上安装MAMP运行环境 IDE使用 Netbeans PHP版本开发 数据库使用mysql 自学资料使用:PHP从入门到精通.pdf 第一阶段书写学习代码,外加注释详解 <!DOCTYPE html> <!-- To change this license header, choose License Headers in Project Properties. To change this template file, c

自己动手写处理器之第一阶段(1)——计算机的简单模型、架构、指令集

将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第二篇,我尽量每周四篇 第1章 处理器与MIPS 时间开始了! --胡风 · 1949 让我们以一句诗意的话,开始本书的阅读. 时间从1971年11月15日开始,那一天,Intel发布了世界上第一款单芯片微处理器4004. 1.1 计算机的简单模型 计算机很复杂,可以听歌.看电影.上网.玩游戏,内部是怎么工作的,这个问题太可怕了,太复杂了. 计算机很简单,只有加.减.乘.除.逻辑.移位.转移.存储.加载等几类可以做的操作,太简单了.

校园跳蚤市场-第一阶段结束及总结

                                                            我们的第一阶段目标是制作出商品展示的静态网页,效果如下:                                                                                                     Sprint计划表:  总结 这一次冲刺对我们来说,并不是很完美.因为我们小组四人中有一个理事长,两个部长,在这段时间都在