复习笔记2-方法 面向对象 常用API

## 1.方法
⭐注意：
①一个方法不能定义在另一个方法里面
②return语句的下面，不能编写代码
⭐方法定义时：
①是否需要接收数据处理
(不需要接收数据，则不需要定义形参，调用方法时也不可以传数据给方法)
②是否需要返回数据
（不需要返回数据，返回值类型为void,方法内部不可以使用return）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899383/9ab614fe-8c2b-2b09-4c38-05b713c01a61.png)
## 2.方法重载
一个类中，方法名称相同，形参列表不同（个数，类型，顺序）的方法
（其他的都不管，如修饰符，返回值类型是否一样都无所谓的）
## 3.return关键字
单独使用在无返回值方法中的作用：跳出并立即结束当前方法的执行
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899383/f748dca6-dd2e-9401-2030-456b501cd78d.png)
## 4.方法参数传递
基本类型传递的是：值的副本
引用类型传递的是：地址的副本
## 5.面向对象
对象是用类new出来的，有了类就可以创建出对象
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899383/b8f6b7d2-36c7-a775-15b4-aea3672a1ced.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899383/d21ecf14-1d8e-61f3-61aa-01b1f238199d.png)
## 6.封装
用类设计对象处理某一事物的数据时，应该把要处理的数据，以及处理这些数据的方法，设计到一个对象中去。
合理隐藏，合理暴露。
⭐公开成员：public     私有成员：private
之后成员变量都写为私有，用private修饰，写get/set方法。
## 7.实体类
①这个类中的成员变量都要私有，并且要对外提供相应的get/set方法
②类中必须要有一个公共的无参的构造器
#### 作用：
只是一个用来保存数据的java类，可以用它创建对象，保存某个事物的数据
#### 应用场景：
数据和数据的业务处理相分离
## 8.String的常用方法
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899383/0516c0a2-9234-5af1-ba40-f5781ad65c3b.png)
```java
 // TODO 掌握string提供的处理字符串的常用方法
        String s = "黑马Java";
        // 1.获取字符串的长度
        System.out.println(s.length());// 6

        // 2.提取字符串中某个索引位置处的字符
        char c = s.charAt(1);
        System.out.println(c);// 马

        // 字符串的遍历
        for (int i = 0; i < s.length(); i++) {
            // i = 0 1 2 3 4 5
            char ch = s.charAt(i);
            System.out.println(ch);// 黑马Java
        }

        // 3.把字符串转换成字符数组，再进行遍历
        char[] chars = s.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);// 黑马Java
        }

        // 4.判断字符串内容，内容一样就返回true
        String s1 = new String("黑马");
        String s2 = new String("黑马");
        System.out.println(s1 == s2);//false
        System.out.println(s1.equals(s2));//true

        // 5.忽略大小写，比较字符串内容
        String c1 = "34AeFG";
        String c2 = "34aEfg";
        System.out.println(c1.equals(c2));//false
        System.out.println(c1.equalsIgnoreCase(c2));//true

        // 6.截取字符串内容
        String s3 = "Java是最好的编程语言之一";
        String rs = s3.substring(0,8);
        System.out.println(rs);// Java是最好的

        // 7.从当前索引位置一直截取到字符串的末尾
        String rs2 = s3.substring(5);
        System.out.println(rs2);// 最好的编程语言之一

        // 8.把字符串中的某个内容替换成新内容，并返回新的字符串对象给我们
        String info = "这个电影简直是个垃圾，垃圾电影";
        String rs3 =info.replace("垃圾","**");
        System.out.println(rs3);// 这个电影简直是个**，**电影

        // 9.判断字符串中是否包含某个关键字
        String info2 = "Java是最好的编程语言之一，我爱Java，Java不爱我";
        System.out.println(info2.contains("Java"));//true

        // 10.判断字符串是否以某个字符串开头，
        String rs4 = "张三";
        System.out.println(rs4.startsWith("张"));// true

        // 11.把字符串按照某个指定内容分割成多个字符串，放到一个字符串数组中，返回给我们
        String rs5 = "汪苏泷,魏大勋,李宇春";
        String[] names = rs5.split(",");
        for (int i = 0; i < names.length; i++) {
            System.out.println(names[i]);// 汪苏泷
                                        //魏大勋
                                       // 李宇春
```
## 9.ArrayList集合
⭐数组定义完成并启动后，长度就固定了；集合大小可变，开发中用的更多
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899383/151d8c64-ce63-d0e6-a2cd-cd2b801e197a.png)
```java
       // 1.创建一个ArrayList的集合对象
        ArrayList<String> list = new ArrayList<>();

        list.add("黑马");
        list.add("黑马");
        list.add("Java");
        System.out.println(list);//[黑马, 黑马, Java]

        // 2.往集合中的某个索引位置处添加一个数据
        list.add(1,"MYSQL") ;
        System.out.println(list);// [黑马, MYSQL, 黑马, Java]

        // 3.根据索引获取集合中某个索引位置处的值
        String rs =list.get(1);
        System.out.println(rs);// MYSQL

        // 4.获取集合的大小，返回集合中存储的元素个数
        System.out.println(list.size());// 4

        // 5.根据索引删除集合中的某个元素值，会返回被删除的元素值给我们
        System.out.println(list.remove(1));// MYSQL
        System.out.println(list);// [黑马, 黑马, Java]

        // 6.直接删除某个元素值，删除成功会返回true,反之返回false
        System.out.println(list.remove("Java"));// true
        System.out.println(list);// [黑马, 黑马]

        list.add(1,"html");
        System.out.println(list);//[html, 黑马]

        // 默认删除的是第一次出现的这个黑马的数据的
        System.out.println(list.remove("黑马"));// true
        System.out.println(list);// [黑马]

        // 7.修改某个索引位置处的数据，修改后会返回原来的值给我们
        System.out.println(list.set(1, "黑马程序员"));// 黑马
        System.out.println(list);// [html, 黑马程序员]
```