JavaSE笔记07

数组工具类Arrays

Arrays 类是一个工具类,其中包含了数组操作的很多方法。这个 Arrays 类里均为 static 修饰的方法(static 修饰的方法可以直接通过类名调用),可以直接通过 Arrays.xxx(xxx) 的形式调用方法。

// 1.创建一个数组对象
int[] toBeSortedArr = {22, 33, 5, 7, 2, -6, 13, 99, 82};

// 2.调用工具类的工具方法对上面数组进行排序
// 类名.方法名(传入参数)
Arrays.sort(toBeSortedArr);

数组使用中常见的异常

①数组下标越界异常

// 1.数组下标越界异常
int[] intArr = new int[5];

// java.lang.ArrayIndexOutOfBoundsException
intArr[80] = 5;

// java.lang.ArrayIndexOutOfBoundsException
System.out.println("intArr[5] = " + intArr[5]);

②空指针异常

// 2.空指针异常
// java.lang.NullPointerException
char[] charArr = null;
System.out.println("charArr[0] = " + charArr[0]);

面向对象思想

①面向过程

[1]面向过程程序特点

在顺序、分支、循环结构中,操作变量中存储的数据。

[2]面向过程思想对应的问题

面向过程这种程序设计理念,对应现实生活中某一个点上具体的问题,特别是对应解决问题过程中具体的操作步骤。

[3]面向过程程序的不足

最大的不足:整个系统各个组成部分之间『耦合』太严重。

  • 从开发角度来说:对任何一个细微的地方做修改、调整、升级都会不可避免的影响到其他部分。

  • 从运行角度来说:整个系统中有任何一个数据发生了变化,相关的很多部分都要重新运算,非常浪费性能。

[4]本质

从面相过程的思想发展到面向对象的思想根本原因就是因为随着时代、市场等方方面面的发展,要求程序员编写更加复杂的程序,设计更加庞大的系统。

由非常多组成部分有机结合在一起的系统是面向过程代码无法容纳的。

②面向对象

[1] 关键

面向对象的设计理念、编程思想非常贴合人平时认识世界、思考问题时的思维方式。

[2] 类

程序中的『类』,对应到生活中就是对同一类事物的一个统一的『分类名称』。

[3] 类和对象的关系

  • 从抽象和具体的角度来说:

    • 类:抽象描述

    • 对象:具体实体,所以对象也被称作:『类的实例』

  • 从设计图和产品的角度来说:

    • 类:生产产品的设计图

    • 对象:按照设计图生产出来的一个具体的产品

创建类和对象

声明一个类(有属性、方法)

public class Person {

    // 属性/成员变量
    // 暂时先不管声明属性的具体规则,像以前一样声明变量先使用
    // 这个成员变量即使没有初始化,系统也会为它分配初始值
    // int类型的初始值是0
    int weight;

    // 方法/成员函数
    // 暂时先不管声明函数的具体规则,先声明一个最简单的
    // public:表示这个方法可以在任何地方被调用
    // void:表示这个方法没有返回值
    // (int food):声明这个方法在被调用时可以传入的参数
    public void eat(int food) {
        weight = weight + food;
    }

    public void say() {
        System.out.println("我现在的体重是:" + weight);
    }

}

声明一个对Person进行测试的类

public class PersonTest {

    public static void main(String[] args) {

        // 1.创建Person类的对象
        // 第一步:声明一个Person类这个类型的变量
        // 第二步:使用new关键字创建Person类的对象,对象赋值给第一步声明的变量
        //          在new关键字后面的,是Person类的『构造器』
        //          构造器在以后还会介绍更多细节,现在大家就按照:类名()的格式写就行
        Person person = new Person();

        // 2.调用Person对象的eat()方法:让这个人吃饭
        // 调用有参数方法的格式:指向对象的那个变量.方法名(参数)
        person.eat(5);

        // 3.调用Person对象的say()方法:让这个人说说他的体重
        // 调用无参数方法的格式:指向对象的那个变量.方法名()
        person.say();

        // 4.直接修改weight属性
        // 在类之外的其他地方是否可以操作类的属性,取决于属性的修饰符
        // 在将来学习了面向对象的『封装』特性后,我们会知道,在类的外部不建议直接操作类的属性
        person.weight = 20;

        person.say();
    }

}

包的作用

[1]区分同名的类

[2]将不同的类放在不同包下

类中的属性

权限修饰符

权限修饰符不仅对类的属性有要求,对类中的方法的要求是完全一样的:

方法

方法的声明和调用

要调用一个方法,需要先创建方法所在类的对象

// 1.要调用一个方法,需要先创建方法所在类的对象
Calculator calculator = new Calculator();

// 2.通过对象调用方法
// 这里传入给方法的5、11,我们叫做实际参数
int addResult = calculator.add(5, 11);

方法相关规则

  • 方法调用一次就会执行一次

  • 方法必须写在类中,不能独立存在。

  • 方法如果没有返回值,方法体内可以没有return;如果写了return,那么表示方法结束。

  • 方法声明的返回值类型必须和实际返回的数据类型一致。

  • 方法内部不能再声明方法。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值