9-24 张森霖

面向对象

  • 面向过程:当需要实现某一个功能时,每一个步骤都亲历亲为,都参与。
  • 面向对象:当需要实现某一个功能时,不关心步骤。
  • 面向对象的三大特征:封装,继承,多态。

  • 类和对象的关系就是抽象和具体的关系。

  • 类的定义:访问修饰符 class 类名 {}

  • 类的成员不包括一下几个:

    1. 构造方法 c
    2. 实例初始化器 { } b
    3. 静态初始化器 static{ } a

方法

  • 什么是方法? 答:方法是实现某一特定功能的代码块
  • 方法的设计遵循功能单一原则,一个方法只干一件事。

关于可变参数:类型+...+变量名

public void add(int... nums) {
        // 使用方式和数组一样
        System.out.println("add(int... nums)");
    }

使用方法和数组一样 attention:可变参数只能出现在参数列表的最后一位。

eg:

public class Test {
    public int change(int...num) {
        int c=0;
        for(int i=0;i<num.length;i++) {
            c+=num[i];
        }
        return c;
    }
    public static void main(String[] args) {
        Test t=new Test();
        int sum=t.change(1,2,3,4,5,6,7);
        System.out.println(sum);
    }
}

static 的生命周期

  • static方法在类被加载的时候就加载了(并不意味着要执行),而且只加载一次。实例方法在对象初始化的时候加载。

实例方法和static方法的使用

由于static方法的生命周期比实例方法长,所以实例方法能够调用static方法,而static方法不能直接调用实例方法。

for循环与数组

for-each (素组可以使用for-each循环)

for(int num:nums){
    
}//每一次循环都会将被循环的变量的对应值赋给变量

Arrays(类)

  • equals(array a,array b)[返回值 Boolean] 比较两个素组是否相等,若长度,元素值相等(true) 在堆中的地址相等(true)

  • sort(array a) 将指定数组升序排列。

  • binarsearch(array,数值) 二分搜索查找

  • system.arraycopy(array a , int1, array b, int2, c) a是原数组 b是要复制的目标数组 int 1 ,2 分别表示数组a b起始位置,c表示复制长度 两次copy 可以实现删除数组中某个元素

    eg:

    public String newarr() {
        int[] nums= {1,2,3,4,5,6};
    int[] numsafter=new int[5];
    System.arraycopy(nums, 0, numsafter, 0, 1);
    System.arraycopy(nums, 2, numsafter, 1, 4);
    String arr2=Arrays.toString(numsafter);
    return arr2;

今日总结:对string对象内存分配机制不了解,自己下来查资料+实验 解决问题,已经习惯老师的讲课模式,感觉老师的进度适中。希望老师在第九章以后能在目前的基础上稍微放慢一点节奏。昨天的三道题虽然做完了 但是有的对,有的错,今天晚上再做了一遍。但是今天所学的知识晚上没怎么练习。晚上写代码遇到问题试着看了一下开发文档,还是能看懂,以后有时间看能不能试着挑战看英语的开发文档。

标签

评论

this is is footer