数组的定义:可以存储多个元素并且多个元素是同一种类型的容器。
数据类型[ ] 数组名;
数据类型 数组名[ ];
比如
int[ ] a; 即定义了一个int类型的数组变量a
int a[ ] ; 即定义了一个int类型 变量a数组
这两种方式的定义:虽然写法不一样,并且读法不一样,但是表达的效果一样,都是在定义一个数组,推荐使用第一种方式。
数组的初始化:
1)动态初始化: 给数组指定长度,数组中的元素值由系统默认给定;
2)静态初始化: 给定数组中元素的值,数组的长度由系统给定。
数组的动态初始化:
数据类型[ ] 数组名 = new 数据类型[数组长度] ;
数组的静态初始化:
指定数组的元素,长度由系统给定
数据类型[ ] 数组名称 = new 数据类型[]{元素1,元素2,元素3....} ;
简写为以下格式:数据类型[ ] 数组名称= {元素1,元素2,元素3..} ;
面向过程和面向对象的区别
面向过程:
假设有一个需求:求数组中的最大值;
定义一个数组,静态初始化---->定义一个参照物---->遍历....
给一个需求,对需求分析,然后一步一步进行操作,最终得到某一个结果,整个过程都是自己在完成....
面向对象的思想概述:
思想的特征:
1)面向对象更符合我们的生活中的行为思想习惯
2)面向对象将我们从执行者变成了指挥者,指挥对象做事情
3)面向对象简单性体现在这里:让我们事情从复杂性--->简单化
面向对象
将事物看成XX类,将事物对应的属性--->看成这个类的
成员变量
将事物对应的行为----->看成这个类的成员方法
描述一个学生事物,
属性:姓名,年龄,性别,学号
行为:学习
在Java中,创建对象:new对象
类名 对象名 = new 类名() ;
面向对象的三大特征:
封装
继承
多态
类的组成中有一个成员:成员方法
成员方法的分类:
1)按照返回值划分
void的形式:没有具体的返回值
非void形式:有具体返回值
2)按照参数进行划分
空参
有参
有返回值没有参数的
public String show() {}
没有返回值,有参数的情况
public void method(String s) {}
没有返回值,没有参数的情况
public void function() {}
有返回值,有参数的情况
public String function2(String s1,String s2) {}
构造方法
其作用就是给对象进行进行初始化。
构造方法也属于一类的组成:
成员变量
构造方法
成员方法
构造方法:
1)方法名和类名相同
2)构造方法,连void都没有
构造方法的注意事项:
1)之前没有写无参构造,系统会默认提供无参构造
2)如果我们有无参构造或者有参构造,系统不会再提供无参构造;定义一个类的时候,永远给出无参构造;
构造方法是可以重载的。
static关键字
1)静态随着类的加载而加载
2)static优先于对象存在
3)static共享数据,可以被多个对象进行共享
举例:教室(staticd的:共享的)
水杯(不能共享的...)
4)如果数据是被静态修饰的,它可以被类名直接调用
被静态修饰的方法:类名.方法名()
被静态修饰的变量:类名.变量名;
static用法:
一个类中可有静态变量,也可以有非静态。
可以有静态成员方法,也可以非静态的成员方法。
静态的方法只能访问静态变量,或者是静态的方法。
非静态的方法,既可以访问静态变量也可以非静态的变量
简单记:静态只能访问静态
定义变量,方法,类,接口,做到见名知意
在手机类中的公共的访问方法中,对应局部变量名称应该做到见名知意
虽然做到见名知意了,但是局部变量将成员变量可以隐藏掉,Java提供一个关键字:this
this:代表是当前类对象,或者是(当前类对象的引用),解决局部隐藏了成员变量。
形式参数的问题:
如果是基本数据类型,形式参数的改变对实际参数没有影响,
研究引用类型:形式参数的改变会直接影响实际参数。
匿名对象:
就是创建对象的时候,没有名字的对象。
System.out.println(new Student());//创建的这个Student对象是没有名字的。
匿名对象在实际开发中,只用使用一次,不要使用多次(可能会造成一个内存溢出的现象);
private的用法:
1)被private修饰的只能在本类访问;
2)可以通过公共的访问public去间接访问;
当出现成员变量和局部变量名称一致的情况,遵循就近原则。
针对数组操作的工具类
如何制作一个文档说明书
1)创建一个数组,静态初始化
2)创建一个工具类,ArrayTool,提供一些静态功能
遍历,最值,查找
3)ArrayTool,每类,方法加上文档注释
4)打开dos控制台:
找到当前路径:
javadoc -d(目录名) -author -version ArrayTool.java