实训经验分享day11

一、课前分享/*------------------------------------------------------*/

早:
继承:一个类只能继承一个类
调用方法先从子类查找,找不到再去父类中
this指向子类,super指向父类
方法重写
public,private,protected

中:
字符集


晚:
海里元素堆积->复制分子不断复制->出错->硅藻->堆叠->白垩纪->甲硅藻->可控炸药
诺贝尔奖起源
人工智能的要点:
    创造生命(创造智慧):1.不停地复制(无意识) 2.出错

(PS:晚上的分享真的成功吸引了我的兴趣,上台来分享的是一个看起来比较腼腆的男生,说话声音小小的,然后像我一样上了台不知道说些什么好,但是他的表现真的很不错,从他开始说起就一直没有卡壳,从物种起源讲到炸药起源再讲到诺贝尔奖为什么没有数学,再从中提取出了自己对人工智能的理解:制造人工智能就是在创造智慧,而人类智慧的起源或能给我们启迪,比如他说的两个条件:1.无意识的自我复制,2.出错;        真的让人很有启发,而且关键点在于他的话轻柔但又有感染力,我全程都在竖起耳朵听,应该很认真地准备过,真厉害)

二、上课内容/*------------------------------------------------------*/

上午:
java中的var变量必须是局部变量,声明的同时必须赋值,因为假如你只声明,后续赋值就不知道var是什么类型的变量了。
数组的动态初始化就是创建时不赋值
int[] a = new int[数组长度]
数组的静态初始化就是创建的时候赋值
int[] a = new int[]{初始数据}
或 int[] a = {初始数据}
数组在创建时有初始值,初始值根据数据类型

数组的遍历有两种方式:
    普通for:
    增强for:
普通for的特点是可以随机存取和赋值
增强for循环的特点是简单方便,缺点是只能从头到尾遍历且不能赋值。
(原因:增强for循环的原理是用一个变量i来接收数组中的每一个元素,本质上是值的传递)。

下午:
下午进入了面向对象的学习,学习到了对象是new出来的,有new才有对象。类是对象的抽象,表示一类事务;对象是类的特殊,表示具体的某个个例。面向对象的主要目的是将生活用对象来表示,用以解决复杂的问题,最后还是要通过面向过程来解决问题。然后类里可以定义属性和行为,属性即成员变量,行为即成员方法。

三、代码练习/*------------------------------------------------------*/

package youjixian01a;
/*
    数组练习题
 */
//A:遍历int类型的数组 依次输出每个数组元素
//B:遍历字符数组
//C:最值:获取数组中的最大值和最小值
//D:逆序:倒叙输出数组元素


public class test19 {
    public static void main(String[] args) {

        int[] a = new int[]{1, 2, 3, 4, 0, 5, 9, 8, 7, 6, 0};
        char[] c = new char[]{'A', 'B', 'C', 'D', 'E'};
        //A:遍历int类型的数组 依次输出每个数组元素
        itr(a);
        //B:遍历字符数组
        itr(c);
        //C:最值:获取数组中的最大值和最小值
        getMaxMin(a);

        //D:逆序:倒叙输出数组元素
        converse(a);

        //1.将一个存放了大写字母的数组转换成存放小写字母的数组返回
        upper(c);

        int index = getIndex(a, 8);
        System.out.println(index);

        delZero(a);

    }

    private static int[] itr(int[] a) {
        //  普通for
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println();
        //  增强for
        for (int i : a) {
            System.out.print(i + " ");
        }
        System.out.println();
        return a;
    }

    private static char[] itr(char[] c) {
        //  普通for
        for (int i = 0; i < c.length; i++) {
            System.out.print(c[i] + " ");
        }
        System.out.println();
        //  增强for
        for (char i : c) {
            System.out.print(i + " ");
        }
        System.out.println();
        return c;
    }

    private static void getMaxMin(int[] a) {
        //  普通for
        int max = a[0];
        int min = a[0];
        for (int i = 0; i < a.length; i++) {
            if (a[i] > max)
                max = a[i];
            if (a[i] < min)
                min = a[i];
        }
        System.out.println("普通for max:" + max);
        System.out.println("普通for min:" + min);
        //  增强for
        max = a[0];
        min = a[0];
        for (int i : a) {
            if (i > max)
                max = i;
            if (i < min)
                min = i;
        }
        System.out.println("增强for max:" + max);
        System.out.println("增强for min:" + min);
    }

    private static void converse(int[] a) {
        //  普通for
        System.out.println("普通for正序");
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println();
        System.out.println("普通for逆序");
        for (int i = a.length - 1; i >= 0; i--) {
            System.out.print(a[i] + " ");
        }
        System.out.println();
        //  增强for
        System.out.println("增强for循环是不可以控制循环的方向的。 也就是说,不可以倒序输出。");
    }

    private static void lower(char[] c) {
        for (int i = 0; i < c.length; i++) {
            c[i] -= 32;
            System.out.print(c[i] + " ");
        }
        System.out.println();
    }

    private static void upper(char[] c) {
        for (int i = 0; i < c.length; i++) {
            c[i] += 32;
            System.out.print(c[i] + " ");
        }
        System.out.println();
    }

    /*2.数组元素查找(查找指定元素第一次在数组中出现的索引)
     * 若存在:返回这个元素的下标
     * 若不存在:返回-1
     */
    public static int getIndex(int[] a, int tar) {
        for (int i = 0; i < a.length; i++) {
            if (tar == a[i])
                return i;
        }
        return -1;
    }

    /*
     * 3.将一个整型数组中的0去掉后但会一个新数组.
     * 	例如: int[] arr={1,26,0,8,10,50,8,0,7,35,0,4,3,20,0,17};
     *  要求:将以上数组中的0去掉,将不为0的值存入一个新数组,生成新的数组作为返回值.
     *  	int newArr={1,26,8,10,50,8,7,35,4,3,20,17};
     */
    public static int[] delZero(int[] a) {
        int count = 0;
        for (int i = 0; i < a.length; i++) {
            if (a[i] != 0)
                count++;
        }
        int[] b = new int[count];
        int j = 0;
        for (int i = 0; i < a.length; i++) {
            if (a[i] != 0)
                b[j++] = a[i];
        }
        for (int i : b) System.out.print(i + " ");
        return b;
    }

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值