1.动态初始化:初始化时只指定数组长度,由系统分配初始化值;
数据类型 [] 数组名 = new 数据类型[数组长度];
2.静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度;
数据类型 [] 数组名 = new 数据类型[]{元素1,元素2,....};
数据类型 [] 数组名 = {元素1,元素2,....};
3.arr.length
4.方法的参数如果是基本数据类型:形式参数类型的改变不影响实际参数
1.形式参数:用于接收实际参数的变量
例:public static int max(int a, int b) //这里的int a b 就是形式参数
2.实际参数:实际参与运算的变量
例:int a = 10 ;
3.如果参数是引用数据类型:形式参数的改变直接影响实际参数
例:int[]arr 传的是地址值
5.方法调用:(有明确返回值的方法调用)
1:单独调用没有意义
2:输出调用
3.赋值调用
6.构造方法
public class Student {
public Student() {
调用构造方法:
格式:类名 对象名 = new 构造方法
Student s = new Student();
面向对象编程思想:
private
私有的
修饰成员变量 、 成员方法
被private关键字所修饰的内容只能够在本类中可以使访问
被private修饰的成员变量,一般都会对外界提供公有的访问方式,如:setXxx()、getXxx()方法
注意:setXxx()、getXxx()方法是否有参数列表、返回值类型
成员变量和局部变量同名时,局部变量采用就近原则。
this关键字:
当前对象的引用
哪个对象来调用我,我就代表哪个对象
JavaBean对象中的成员方法内部都隐藏了一个this。表示哪个对象中的方法。
面向对象的特征
封装
原则:将不需要对外暴露的内容隐藏。
隐藏实现细节,对外提供公有的访问方式。
好处:
提高代码的安全性(外界不能直接访问)、复用性(重复使用特性,比如:方法)
封装就是private么? 不是。private仅仅是封装的一种体现形式。
构造方法:
格式:
修饰符 类名(){}
构造方法格式的注意事项:
是否可以有return? 可以
是否可以有返回值? 不可以
是否可以有void? 不可以
方法名必须与类名一致么? 必须一致
构造方法的注意事项:
1、类中没有定义任何构造方法,系统会默认提供空参构造
2、类中有定义有参构造,但没有定义空参构造,系统不会免费提供空参构造
3、构造方法可以重载
成员变量赋值:
1. setXxx()
2. 调用构造方法(注意:一旦调用构造方法,表示重新创建新对象,并不能够代表修改成员变量的值。 表示:杀人)
sc.nextLine()获取字符
* String:字符串类
* 由多个字符组成的一串数据
* 字符串其本质是一个字符数组
*
* 构造方法:
* String(String original):把字符串数据封装成字符串对象
* String(char[] value(就是字符数组的名字)):把字符数组的数据封装成字符串对象
* String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象
*
* 注意:字符串是一种比较特殊的引用数据类型,直接输出字符串对象输出的是该对象中的数据。
-*****String创建对象,如果去获取这个,得到的不是地址值,而是字符串
"" ""存字符串 ''存字符
String只能把字符数组变成字符串,不能把字符串数组变成字符串
字符串的类容是存储在方法区的常量池里面的是为了方便字符串的重复使用
字符串定义方式区别:
a.通过构造方法创建的字符串对象是在堆中,内部的地址指向堆String age= new String(18);
b.直接赋值,例如String age=18不进堆,而是直接指向方法区的常量池
-*****b类型常用.因为节省效率
Object :是类层次结构中的根类,所有的类都直接或者间接的集成自该类
如果一个方法的形式参数是Object,那么我们就可以传递他的任意的子类对象
String类的判断功能:
* boolean equals(Object obj):比较字符串的内容是否相同
* boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
* boolean startsWith(String str):判断字符串对象是否以指定的str开头
* boolean endsWith(String str):判断字符串对象是否以指定的str结尾
sc.nextLine() 获取字符
数组(字符数组)->字符串:String s1 = new String(数组)
截取数组(字符数组):String s1 = new String(数组,开始截取的下标,截取多少个)
s1.split(某个字符串): 根据某个字符串,把原字符串分割成数组
s1.length() 获取字符串长度(字母个数)
s1.equals 判断字符串值是否相等
s1.startsWith(): 判断是否以某个字符串开头
s1.endWith(): 判断是否以某个字符串结尾
s1.indexOf(字符串): 获取S1中,第一次出现参数中字符串的位置索引,如果没有,返回-1,
s1.substring(索引): 索引处截取字符串,一直截取到最后
s1.toLowerCase(); 字符串转换为小写
s1.toUpperCase(): 字符串转换为大写
s1.charAt(字符串索引) 获取指定索引处的某个字符
s1.toCharArray() : 字符串转换为字符数组
s1.trim():去掉左右两端的空格(不包括中间的) 小红
s1.equalsIgnoreCase : 判断字符串值是否相等,忽略大小写比较
s1.substring(索引,end): 从索引出开始,到end处进行截取,包括索引,不包括end对应的字符
StringBuilder sb = new StringBuilder()
sb.capacity() 获取sb容器的容量(理论值)
sb.length():获取里面字符串的长度
sb.append(内容):向字符串中追加数据(返回的是对象)
sb.reverse():字符串翻转
StringBuilder转成字符串
sb.toString();返回一个字符串
字符串转换成StringBuilder
new的时候,直接把字符串放进去就好了
new StringBuilder(字符串/字符串变量)
sb. charAt(int index) :获取指定索引处的某个字符
sb. delete(int start, int end) 删除
io流概述:
IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中 FileWriter方法: 构造方法 FileWriter(String fileName) 传入一个文件的路径 成员方法 void write(String str) 向文件中写str void flush() 将内存中的数据刷新到文件中
void close() 关流释放系统底层资源 void write(Stringstr):写一个字符串数据 void write(Stringstr,int index,int len):写一个字符串中的一部分数据 void write(int ch):写一个字符数据,这里写int类型的好处是既可以写char类型的数据,也可以写char对应的int类型的值。'a',97 void write(char[]chs):写一个字符数组数据
void write(char[]chs,int index,int len):写一个字符数组的一部分数据
|