Java-05 数组 面向对象 三大特性

数组小结:

        数组是相同数据类型的有序结合

        数组也是对象,数组元素相当于对象的成员变量

        数组长度是确定的,不可变的,如果越界,则报ArrayIndexOutOfBounds

Arrays数组的工具类

sort()排序

toString()打印

fill()填充

冒泡排序的时间复杂度O(n2)

package com.hollyland.array;

import java.util.Arrays;

public class BubbleSorting {

    public static void main(String[] args) {
        //冒泡排序
        //1.比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置
        //2.每一次比较,都会产生出一个最大,或者最小的数字
        //3.下一轮则可以少一次排序
        //4.依次循环知道结束

        int[] arr = {23, 12314, 12, 31, 3, 2, 1, 341231, 1};
        System.out.println(Arrays.toString(sort(arr)));

    }

    public static int[] sort(int[] array) {
        //临时变量
        int temp = 0;
        boolean flag = false;
        //外层循环,判断我们这个要走多少次
        for (int i = 0; i < array.length; i++) {
            flag = false;
            //内层循环,比价判断两个数,如果第一个数,比第二个数大,则交换位置
            for (int j = 0; j < array.length - 1 - i; j++) {
                if (array[j] > array[j + 1]) {
                    temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                    flag = true;
                }
            }
            if (flag == false) {
                break;
            }
        }
        return array;
    }
}

面向过程

        第一步做什么,第二步做什么

面向对象

        物以类聚‘分类的思维模式

宏观--->面向对象

微观--->面向过程

面向对象的本质:以类的方式组织代码,以对象组织(封装)数据

抽象

三大特性:封装,继承,多态

方法:静态方法        非静态方法

类是一种抽象的数据类型,它是对某一类事物的整体描述/定义,但是并不能代表某一个具体的事物

对象是抽象概念的具体实例

* 1.类与对象
*   类是一个模板:抽象,对象是一个具体实例
* 2.方法
*   定义,调用
* 3.对应的引用
*   引用类型:基本类型(8)
*   对象是通过引用来操作的:栈--->堆
* 4.属性:字段Field 成员变量
*   默认初始化:
*   数字: 0 0.0
*   char: u0000
*   Boolean: false
*   引用: null
*
*   修饰符 属性类型 属性名 = 属性值!
* 5.对象的创建和使用
*   -必须使用new 关键字创造对象,构造器
*   -对象的属性
*   -对象的方法
* 6.类:
*   静态的属性 属性
*   动态的行为 方法

封装:

高内聚低耦合 不允许外部干涉

属性私有 set/get

extends 扩展 子类是父类 的拓展

super注意点

        1.super调用父类的构造方法,必须在构造方法的第一个

        2.super必须只能出现在子类的方法或者构造方法中

        3.super和this不能同时调用构造方法

vs this

        代表的对象不同

                this: 本身调用者这个对象

                super:代表父类对象的引用

        前提

                this:没有继承也可以使用

                super:只能在继承条件才可以使用

        构造方法

                this()本类的构造

                super()父类的构造

重写:需要有继承关系,子类重写父类的方法

        1.方法名必须相同

        2.参数列表必须相同

        3.修饰符:范围可以扩大但不能缩小 public> protected >default > private

        4.抛出的异常:范围可以被缩小,但不能扩大:Class Not Found Exception -->Exception

       重写,子类的方法和父类的必须一致,方法体不同

为什么要重写?

        1.父类的功能,子类不一定需要,或者不一定满足

         Alt+Insert:Overide

多态

动态编译:类型 可扩展性

多态注意事项:

1.多态是方法的多态,属性没有多态

2.父类和子类,有联系                       否则转换类型会出现类型转换异常 ClassCastException

3.存在条件:继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new Son();

                1.static 方法,属于类,他不属于实例

                2.final常量

                3.private方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值