(一)数组:是一个容器(可以存储多个元素),这多个元素的数据类型必须一致
1 数组的定义:
a 数据类型[] 数组名称;
b 数据类型 数组名称[];
2 数组的初始化:
a 动态初始化:数据类型[] 数组名称= new 数据类型[长度] ;
b 静态初始化:数据类型[] 数组名称 =new 数据类型[]{元素1,元素2…}
c 简化格式:数据类型[] 数组名称 = {元素1,元素2,元素3….}
3 数组的应用
3.1 数组的基本遍历
代码:
运行结果:
3.2 数组的最值问题
代码:
运行结果:
3.3 数组元素的逆序
代码:
运行结果:
3.4 基本元素的查找
代码:
运行结果:
(二)面向对象
1 面向对象的特点:
a 面向对象的思想更符合我们生活中的思想行为习惯
b 让一个复杂的事情简单化
c 角色发生变化:让我们从执行者变成了指挥者
2 面向对象的特征:封装、继承、多态
(三)封装
代码(以一个标准类的代码为例):
运行结果:
1 局部变量和成员变量的区别?
1.1 在类中位置不同
局部变量:在方法定义中或方法声明上
成员变量:在类中,方法外
1.2 在内存中的位置不同
局部变量:在栈内存
成员变量:在堆内存
1.3 生命周期不同
局部变量:随着方法调用而存在,随着方法调用结束而消失
成员变量:随着类的加载而加载,随着类的加载结束而消失(等待GC空闲状态)
1.4 初始化不同
局部变量:必须在使用之前进行初始化
成员变量:可以不用初始化
2 私有化
2.1 格式:
成员变量私有化:private 数据类型 变量名 eg:private String name;
成员方法私有化:private 返回值类型 方法名 eg:private void demo(){}
2.2 private关键字:被private修饰的成员变量/成员方法,只能在本类中访问,外界不能够直接访问,所以要提供公共的访问方法getXXX()/setXXX()来给成员变量赋值
2.3 this关键字:代表当前类对象,可以防止局部变量隐藏了成员变量(局部变量名字和成员变量名字相同)
2.4 创建类对象:格式:类名 对象名 = new 类名();
2.5 形式参数的问题:
a 形式参数是基本数据类型:形式参数的改变,对实际参数没有影响
b 形式参数是引用数据类型:形式参的改变:会直接影响实际参数
则:如果一个方法的形式参数是一个引用数据类型,就需要创建该引用类型的具体对象
2.6 匿名对象:没有名字对象
2.6.1 格式:new 类名() ;
2.6.2 匿名对象的好处:
a 调用一次即可,不适合调用多次
b 调用完之后,会立即从内存释放掉,及时被GC垃圾回收器回收掉
c 可以作为参数进行传递