1、构造方法
当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值。
小贴士:无论你与否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个无参数构造方法,一旦自己定义了构造方法,Java自动提供的默认无参数构造方法就会失效。
格式
修饰符 构造方法名(参数列表){ // 方法体 }
构造方法的写法上,方法名与它所在的类名相同。它没有返回值,所以不需要返回值类型,甚至不需要void。使用
构造方法后,代码如下:
public class Student { private String name; private int age; // 无参数构造方法 public Student() {} // 有参数构造方法 public Student(String name,int age) { this.name = name; this.age = age; } }
注意事项
1. 如果你不提供构造方法,系统会给出无参数构造方法。
2. 如果你提供了构造方法,系统将不再提供无参数构造方法。
3. 构造方法是可以重载的,既可以定义参数,也可以不定义参数。
标准代码——JavaBean
public class ClassName{ //成员变量 //构造方法 //无参构造方法【必须】 //有参构造方法【建议】 //成员方法 //getXxx() //setXxx() }

public class Student { //成员变量 private String name; private int age; //构造方法 public Student() {} public Student(String name,int age) { this.name = name; this.age = age; } //成员方法 publicvoid setName(String name) { this.name = name; } public String getName() { return name; } publicvoid setAge(int age) { this.age = age; } publicint getAge() { return age; } } public class TestStudent { public static void main(String[] args) { //无参构造使用 Student s= new Student(); s.setName("柳岩"); s.setAge(18); System.out.println(s.getName()+"‐‐‐"+s.getAge()); //带参构造使用 Student s2= new Student("赵丽颖",18); System.out.println(s2.getName()+"‐‐‐"+s2.getAge()); } }
2、ArrayList使用步骤
java.util.ArrayList <E> :该类需要 import导入使后使用。
<E> ,表示一种指定的数据类型,叫做泛型。 E ,取自Element(元素)的首字母。在出现 E 的地方,我们使
用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。代码如下:
ArrayList<String>,ArrayList<Student>
基本格式:
ArrayList<String> list = new ArrayList<String>();
在JDK 7后,右侧泛型的尖括号之内可以留空,但是<>仍然要写。简化格式:
ArrayList<String> list = new ArrayList<>();
查看成员方法
public boolean add(E e) : 将指定的元素添加到此集合的尾部
对于元素的操作,基本体现在——增、删、查。常用的方法有:
public boolean add(E e) :将指定的元素添加到此集合的尾部。
public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。
public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。
public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。
如何存储基本数据类型
ArrayList对象不能存储基本类型,只能存储引用类型的数据。类似 <int> 不能写,但是存储基本数据类型对应的
包装类型是可以的。所以,想要存储基本类型数据, <> 中的数据类型,必须转换后才能编写,转换写法如下:
基本类型 基本类型包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
3、笔记
1、用private关键字将需要保护的成员变量进行修饰。 一旦使用了private进行修饰,那么本类当中仍然可以随意访问。 但是!超出了本类范围之外就不能再直接访问了。 间接访问private成员变量,就是定义一对儿Getter/Setter方法 ---> (像Python的__set__和__get__) 必须叫setXxx或者是getXxx命名规则。 对于Getter来说,不能有参数,返回值类型和成员变量对应; 对于Setter来说,不能有返回值,参数类型和成员变量对应。 注意事项:对于基本类型当中的boolean值,Getter方法一定要写成isXxx的形式,而setXxx规则不变。 2、 当方法的局部变量和类的成员变量重名的时候,根据“就近原则”,优先使用局部变量。 如果需要访问本类当中的成员变量,需要使用格式: this.成员变量名 “通过谁调用的方法,谁就是this。” 3、构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法。 格式: public 类名称(参数类型 参数名称) { 方法体 } 注意事项: 1. 构造方法的名称必须和所在的类名称完全一样,就连大小写也要一样 2. 构造方法不要写返回值类型,连void都不写 3. 构造方法不能return一个具体的返回值 4. 如果没有编写任何构造方法,那么编译器将会默认赠送一个构造方法,没有参数、方法体什么事情都不做。 public Student() {} 5. 一旦编写了至少一个构造方法,那么编译器将不再赠送。 6. 构造方法也是可以进行重载的。 重载:方法名称相同,参数列表不同。 4、一个标准的类通常要拥有下面四个组成部分: 1. 所有的成员变量都要使用private关键字修饰 2. 为每一个成员变量编写一对儿Getter/Setter方法 3. 编写一个无参数的构造方法 4. 编写一个全参数的构造方法 这样标准的类也叫做Java Bean 5、Scanner类的功能:可以实现键盘输入数据,到程序当中。 引用类型的一般使用步骤: 1. 导包 import 包路径.类名称; 如果需要使用的目标类,和当前类位于同一个包下,则可以省略导包语句不写。 只有java.lang包下的内容不需要导包,其他的包都需要import语句。 2. 创建 类名称 对象名 = new 类名称(); 3. 使用 对象名.成员方法名() 获取键盘输入的一个int数字:int num = sc.nextInt(); 获取键盘输入的一个字符串:String str = sc.next(); 6、创建对象的标准格式: 类名称 对象名 = new 类名称(); 匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。 new 类名称(参数列表); 注意事项:匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象。 使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象。 7、Random类用来生成随机数字。使用起来也是三个步骤: 1. 导包 import java.util.Random; 2. 创建 Random r = new Random(); // 小括号当中留空即可 3. 使用 获取一个随机的int数字(范围是int所有范围,有正负两种):int num = r.nextInt() 获取一个随机的int数字(参数代表了范围,左闭右开区间):int num = r.nextInt(3) 实际上代表的含义是:[0,3),也就是0~2 8、java.lang.String类代表字符串。 API当中说:Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。 其实就是说:程序当中所有的双引号字符串,都是String类的对象。(就算没有new,也照样是。) 字符串的特点: 1. 字符串的内容永不可变。【重点】 2. 正是因为字符串不可改变,所以字符串是可以共享使用的。 3. 字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组。 创建字符串的常见3+1种方式。 三种构造方法: public String():创建一个空白字符串,不含有任何内容。 public String(char[] array):根据字符数组的内容,来创建对应的字符串。 public String(byte[] array):根据字节数组的内容,来创建对应的字符串。 一种直接创建: String str = "Hello"; // 右边直接用双引号 注意:直接写上双引号,就是字符串对象。 9、字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池中。 对于基本类型来说,==是进行数值的比较。 对于引用类型来说,==是进行【地址值】的比较。 10、==是进行对象的地址值比较,如果确实需要字符串的内容比较,可以使用两个方法: public boolean equals(Object obj):参数可以是任何对象,只有参数是一个字符串并且内容相同的才会给true;否则返回false。 注意事项: 1. 任何对象都能用Object进行接收。 2. equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样。 3. 如果比较双方一个常量一个变量,推荐把常量字符串写在前面。 推荐:"abc".equals(str) 不推荐:str.equals("abc") ---> 当str为null时,str.equals()报错 public boolean equalsIgnoreCase(String str):忽略大小写,进行内容比较。 11、String当中与获取相关的常用方法有: public int length():获取字符串当中含有的字符个数,拿到字符串长度。 public String concat(String str):将当前字符串和参数字符串拼接成为返回值新的字符串。 public char charAt(int index):获取指定索引位置的单个字符。(索引从0开始。) public int indexOf(String str):查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1值。 12、字符串的截取方法: public String substring(int index):截取从参数位置一直到字符串末尾,返回新字符串。 public String substring(int begin, int end):截取从begin开始,一直到end结束,中间的字符串。 备注:[begin,end),包含左边,不包含右边。