20165320 毕业设计 第二周总结

20165320 毕业设计 第二周总结

任务及完成情况

周一 周二 周三 周四 周五 周六 周天
Java基础知识回顾|
Java基础知识回顾|
Java基础知识回顾|
撰写开题报告 |
撰写开题报告|
文献翻译 |
总结|
已完成|
已完成|
已完成 |
已完成|
已完成 |
已完成 |
已完成 |

内容总结

一、Java内存划分的五个部分

  • 栈:存放方法中的局部变量(方法的参数,方法内部的变量),方法的运行需要在栈中进行。

  • 堆:new出来的东西(变量、对象)都放在堆中,堆中数据都有一个16进制的地址值,并且有一个默认值。

    • 整数默认为0
    • 浮点数默认为0.0
    • 字符默认为'\u0000'
    • 布尔型默认为false
    • 引用类型默认为null
  • 方法区:存储.class信息,包含方法信息。

  • 本地方法栈:与操作系统有关。

  • 寄存器:与CPU有关。

  • 一个简单数组实例:

  • 一个简单对象实例:

二、封装性

  • 隐藏一些细节信息,对于外界不可见,体现:方法与关键字private,同时对一些属性进行合理性的保护。

  • 针对Private修饰的成员变量,应该定义一对Get对Set方法进行访问。其中对于Boolean型,get方法应写成isXxx形式

  • 简单实例如下:

      class person{
          private int age;
          public void Setage(int age){
              this.age = age;
          }
          public void Getage(){
              return age;
          }
      }
    

三、一个标准的类

  • 为所有的成员变量使用Private修饰。

  • 为每一个成员变量编写Get与Set方法。

  • 编写一个无参构造方法。

  • 编写一个全参构造方法。

  • 简单实例如下:

      class person{
          private int age;
          public person(){}
          public person(int age){
              this.age = age;
          }
      }
    

四、Arrylist<>简单使用

  • Arrylist<>为大小可变的数组,<>中代表的是泛型,只能是引用类型,不能是基本类型(byte、short、int、long、float、double、char、boolean),如有必要,可以使用包装类(Byte、Short、Integer、Long、Float、Double、Character、Boolean)。 从JDK1.5开始,支持自动装箱与拆箱。

  • 常用方法:

    • 从集合中获取元素: public E get (int dex) //参数是索引编号
    • 从集合中添加元素: public boolean add (E e) //参数是泛型
    • 从集合中删除元素: public E remove (int dex) //参数是泛型
    • 获取集合长度: public int size ()
  • 简单例子:

      public class Main {
          public static void main(String[] args) {
      ArrayList<String > qhb1653 = new ArrayList<>();
    
      //向全华班中添加人员
    
      boolean success = qhb1653.add("曹大学姐");
      qhb1653.add("李门头");
      qhb1653.add("孙WJ");
      qhb1653.add("勺王申");
    
      //打印集合中的数据
      System.out.println("组成人员:"+qhb1653);
    
      //获取集合数据
      String leader = qhb1653.get(1);
      System.out.println("头头是"+leader);
    
      //删除GK No.1
      String nb =qhb1653.remove(2);
      System.out.println("被删了的人是:"+nb);
    
      //获取集合长度
      int num = qhb1653.size();
      System.out.println("全华班的人数为:"+(num+1));
          }
      }
    

五、字符串 String

  • 字符串的内容永不改变,可以共享使用,效果相当于char[]型字符数组,但底层原理是byte[]字节数组。

  • 常见四种构造方法:

    • 创建空白数组,内容为空: public String ()
    • 根据字符数组的内容,创建对应字符串:public String (char[] array)
    • 根据字节数组内容,创建对应字符串: public String (byte[] array)
    • 直接String:String str = " " PS:直接双引号的字符串,在字符串常量池中。
    • 简单实例:
  • 对于字符串这种引用类型来说,==比较的是地址值,内容的比较需要用equals。

      String str1 = "ABC";
      char [] charArray = {'A','B,'C'};
      String str2 = new String (charArray);
      System.out.println(str1.equals(str2);
    
  • 常用方法:

    • 获取字符串长度: public int length()
    • 将当前字符串与参数字符串拼接:public String concat (String str)
    • 获取指定索引位置的单个字符:public char charAt (int index)
    • 查找参数字符串在本字符串中首次出现的索引位置:
      public int indexOf(String str)
    • 截取从参数位置到字符串末尾,返回新字符串:public String substring(int index)
    • 截取从begin开始到end结束的字符串:public String substring(int begin,int end)
    • 字符串内容替换:public String replace(old String , new String)
  • 简单例子:

六、关键字

  • Static关键字:如果一个成员变量/方法使用了static关键字,这个变量/方法不再属于对象,而是属于类,多个对象共享,静态方法可以直接使用类名调用。

    • 注意事项:静态中不能访问非静态,也不能使用this关键字,根据类名访问静态成员变量时,与对象无关。
  • 简单实例:

七:继承性

  • 继承主要解决的是共性抽取,子类可以有父类的内容,还可以拥有自己专有的内容。

  • 格式:public class A extends B {}

  • 访问重名成员变量特点:

    • 直接通过子类对象访问成员变量,优先用子类,没有的话向上找。
    • 间接通过成员方法访问成员变量,方法在哪个类里面,优先用哪个类中的成员变量,没有向上找。
  • 创建子类对象,访问成员方法时,对象是谁,优先用谁,没有向上找。

  • 重写:@Overri 方法名称与参数列表都一样。

    • 子类方法的返回值必须小于等于父类方法的返回值范围。
    • 子类方法的权限必须大于等于父类方法的权限修饰符。
  • 子类构造方法中有一个默认的super()调用,先调用父类构造,再执行子类构造。

  • super 与 this内存图

  • Java继承的特点:

    • 一个子类的直接父类只能有唯一一个。

    • 父类可以多级继承,有多个子类。

八:抽象类与抽象方法

  • 抽象方法:加上abstract关键字,去掉大括号,方法体内容不确定。

  • 抽象类:抽象方法所在的类必须是抽象类。

  • 使用方法:

    • 不能直接创建抽象类对象,必须用子类继承抽象父类。
    • 子类必须覆盖重写父类抽象方法,去掉抽象方法的abstract关键字。
    • 创建子类对象使用。
  • 简单实例:

      public abstract class LaoBa{
          public abstract void eat();
      }
      
      public class sxz extends LaoBa{
          public void eat(){
              System.out.println("奥利给,干了兄弟们");
          }
      }
    

九、接口

  • 接口是多个类的公共规范,一种引用数据类型,最重要的内容就是其中的抽象方法。实现类必须覆盖重写所有抽象方法。

  • 格式如下:

      public interface 接口名称 {
          //接口内容
      }
      
      public class 实现类名 implements 接口名{
         // 实现接口内容
      }
    
  • 接口当中的抽象方法,修饰符默认是两个固定的关键字:[public] [abstract] 返回值 方法名 (参数列表) {方法体}

  • 默认方法可以解决接口升级的问题:[public] [default] 返回值 方法名 (参数列表) {方法体}

  • 静态方法:public static 方法名 (参数列表) {方法体}

  • 私有方法:抽取共用方法,解决两个默认方法/静态方法之间重复代码的问题。private [static] 返回值 方法名 (参数列表) {方法体} jdk9之后只有接口本身才能用,不能被实现类调用。

  • 接口当中的常量,必须进行明确的赋值,并且常量名完全大写默认用 [public] [static] [final] 返回值 方法名 (参数列表) {方法体}修饰。

  • 接口不能有构造方法,也没有静态代码块。

十、多态(这一部分目前接触的比较少)

  • 多态分为编译时多态与运行时多态,第一个通过方法重载实现,第二个通过方法覆盖。

  • 通过类名访问成员变量时,看等号左边。

  • 通过成员方法访问成员变量,看该方法属于谁。

  • 口诀:访问变量都看左边,方法运行时看右边。

待解决的问题&下周的计划

  • 待解决的问题:学习效率较低,注意力不集中,急待改善,以前学过的很多知识,很久不用,都忘了....
  • 下周的计划:完成开题报告答辩与Java基础知识的回顾,开始进入Android应用开发基础的学习。
posted @ 2020-03-08 23:34  Gst丶Paul  阅读(218)  评论(0编辑  收藏  举报