封装和常用API

目录

一、封装

1.private关键字

2.private的使用

3.this关键字

4.this内存原理

5.封装思想

(1)封装概述

(2)封装原则

(3)封装好处

二、构造方法

1.构造方法概述

2.构造方法的注意事项

(1)构造方法的创建

(2)构造方法的重载

(3)推荐的使用方式

(4)重要功能

3.标准类制作

三、API

1.API概述

(1)什么是API

(2)java中的API

2.如何使用API帮助文档

四、String类

1.String类概述

2.String类的特点

3.String类的构造方法

4.创建字符串对象两种方式的区别

(1)通过构造方法创建

(2)直接赋值方式创建

5.字符串的比较

(1)==号的作用

(2)equals方法的作用

6.帮助文档查看String常用方法

1.StringBuilder类概述

2.StringBuilder类和String类的区别

3.StringBuilder类的构造方法

4.StringBuilder类添加和反转方法

5.StringBuilder和String相互转换

(1)StringBuilder转换为String

(2)String转换为StringBuilder

6.帮助文档查看StringBuilder常用方法

总结


一、封装

1.private关键字

        private是一个修饰符,可以用来修饰成员(成员变量,成员方法)。被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作:

(1)提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰。

(2)提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰。

        示例代码如下:

/*
    学生类
 */
class Student {
    //成员变量
    String name;
    private int age;

    //提供get/set方法
    public void setAge(int a) {
        if(a<0 || a>120) {
            System.out.println("你给的年龄有误");
        } else {
            age = a;
        }
    }

    public int getAge() {
        return age;
    }

    //成员方法
    public void show() {
        System.out.println(name + "," + age);
    }
}
/*
    学生测试类
 */
public class StudentDemo {
    public static void main(String[] args) {
        //创建对象
        Student s = new Student();
        //给成员变量赋值
        s.name = "林青霞";
        s.setAge(30);
        //调用show方法
        s.show();
    }
}

2.private的使用

        需求:定义标准的学生类,要求name和age使用private修饰,并提供set和get方法以及便于显示数据的show方法,测试类中创建对象并使用,最终控制台输出  皮卡丘,30。

        示例代码如下:

/*
    学生类
 */
class Student {
    //成员变量
    private String name;
    private int age;

    //get/set方法
    public void setName(String n) {
        name = n;
    }

    public String getName() {
        return name;
    }

    public void setAge(int a) {
        age = a;
    }

    public int getAge() {
        return age;
    }

    public void show() {
        System.out.println(name + "," + age);
    }
}
/*
    学生测试类
 */
public class StudentDemo {
    public static void main(String[] args) {
        //创建对象
        Student s = new Student();

        //使用set方法给成员变量赋值
        s.setName("皮卡丘");
        s.setAge(30);

        s.show();

        //使用get方法获取成员变量的值
        System.out.println(s.getName() + "---" + s.getAge());
        System.out.println(s.getName() + "," + s.getAge());

    }
}

3.this关键字

        this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题)。

(1)方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量。

(2)方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量。

        示例代码如下:

public class Student {
    private String name;
    private int age;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void show() {
        System.out.println(name + "," + age);
    }
}

4.this内存原理

        this代表当前调用方法的引用,哪个对象调用的方法,this就代表哪一个对象。

        示例代码如下:

public class StudentDemo {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.setName("皮卡丘");
        Student s2 = new Student();
        s2.setName("史迪仔");
    }
}

5.封装思想

(1)封装概述

        封装是面向对象三大特征之一(封装,继承,多态) 是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的。

(2)封装原则

        将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问 成员变量private,提供对应的getXxx()/setXxx()方法。

(3)封装好处

        通过方法来控制成员变量的操作,提高了代码的安全性;把代码用方法进行封装,提高了代码的复用性 。

二、构造方法

1.构造方法概述

        构造方法是一种特殊的方法。

        作用:创建对象 Student stu = new Student();

        格式:

public class 类名{

        修饰符 类名( 参数 ) {

        }

}

        功能:主要是完成对象数据的初始化。

        代码示例如下:

class Student {
    private String name;
    private int age;

    //构造方法
    public Student() {
        System.out.println("无参构造方法");
    }

    public void show() {
        System.out.println(name + "," + age);
    }
}
/*
    测试类
 */
public class StudentDemo {
    public static void main(String[] args) {
        //创建对象
        Student s = new Student();
        s.show();
    }
}

2.构造方法的注意事项

(1)构造方法的创建

        如果没有定义构造方法,系统将给出一个默认的无参数构造方法 如果定义了构造方法,系统将不再提供默认的构造方法。

(2)构造方法的重载

        如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法。

(3)推荐的使用方式

        无论是否使用,都手工书写无参数构造方法。

(4)重要功能

        可以使用带参构造,为成员变量进行初始化。

        代码示例如下:

/*
    学生类
 */
class Student {
    private String name;
    private int age;

    public Student() {}

    public Student(String name) {
        this.name = name;
    }

    public Student(int age) {
        this.age = age;
    }

    public Student(String name,int age) {
        this.name = name;
        this.age = age;
    }

    public void show() {
        System.out.println(name + "," + age);
    }
}
/*
    测试类
 */
public class StudentDemo {
    public static void main(String[] args) {
        //创建对象
        Student s1 = new Student();
        s1.show();

        //public Student(String name)
        Student s2 = new Student("皮卡丘");
        s2.show();

        //public Student(int age)
        Student s3 = new Student(30);
        s3.show();

        //public Student(String name,int age)
        Student s4 = new Student("皮卡丘",30);
        s4.show();
    }
}

3.标准类制作

        需求:定义标准学生类,要求分别使用空参和有参构造方法创建对象,空参创建的对象通过setXxx赋值,有参创建的对象直接赋值,并通过show方法展示数据。

        代码示例如下:

class Student {
    //成员变量
    private String name;
    private int age;

    //构造方法
    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    //成员方法
    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void show() {
        System.out.println(name + "," + age);
    }
}
/*
    创建对象并为其成员变量赋值的两种方式
        1:无参构造方法创建对象后使用setXxx()赋值
        2:使用带参构造方法直接创建带有属性值的对象
*/
public class StudentDemo {
    public static void main(String[] args) {
        //无参构造方法创建对象后使用setXxx()赋值
        Student s1 = new Student();
        s1.setName("皮卡丘");
        s1.setAge(30);
        s1.show();

        //使用带参构造方法直接创建带有属性值的对象
        Student s2 = new Student("皮卡丘",30);
        s2.show();
    }
}

三、API

1.API概述

(1)什么是API

        API (Application Programming Interface) :应用程序编程接口。

(2)java中的API

        指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。

2.如何使用API帮助文档

(1)打开帮助文档

(2)找到索引选项卡中的输入框

(3)在输入框中输入Random

(4)看类在哪个包下

(5)看类的描述

(6)看构造方法

(7)看成员方法

四、String类

1.String类概述

        String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。String 类在 java.lang 包下,所以使用的时候不需要导包。

2.String类的特点

(1)字符串不可变,它们的值在创建后不能被更改。

(2)虽然 String 的值是不可变的,但是它们可以被共享。

(3)字符串效果上相当于字符数组( char[] ),但是底层原理是字节数组( byte[] )。

3.String类的构造方法

        常用的构造方法:

方法名说明
public String()创建一个空白字符串对象,不含有任何内容
public String(char[] chs)根据字符数组的内容,来创建字符串对象
public String(byte[] bys)根据字节数组的内容,来创建字符串对象
String s = “abc”;直接赋值的方式创建字符串对象,内容就是abc

        示例代码如下:

public class StringDemo01 {
    public static void main(String[] args) {
        //public String():创建一个空白字符串对象,不含有任何内容
        String s1 = new String();
        System.out.println("s1:" + s1);

        //public String(char[] chs):根据字符数组的内容,来创建字符串对象
        char[] chs = {'a', 'b', 'c'};
        String s2 = new String(chs);
        System.out.println("s2:" + s2);

        //public String(byte[] bys):根据字节数组的内容,来创建字符串对象
        byte[] bys = {97, 98, 99};
        String s3 = new String(bys);
        System.out.println("s3:" + s3);

        //String s = “abc”;	直接赋值的方式创建字符串对象,内容就是abc
        String s4 = "abc";
        System.out.println("s4:" + s4);
    }
}

4.创建字符串对象两种方式的区别

(1)通过构造方法创建

        通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同。

(2)直接赋值方式创建

        以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,并在字符串池中维护。

5.字符串的比较

(1)==号的作用

        比较基本数据类型:比较的是具体的值。

        比较引用数据类型:比较的是对象地址值。

(2)equals方法的作用

        方法介绍:

public boolean equals(String s)     比较两个字符串内容是否相同、区分大小写

        代码示例如下:

public class StringDemo02 {
    public static void main(String[] args) {
        //构造方法的方式得到对象
        char[] chs = {'a', 'b', 'c'};
        String s1 = new String(chs);
        String s2 = new String(chs);

        //直接赋值的方式得到对象
        String s3 = "abc";
        String s4 = "abc";

        //比较字符串对象地址是否相同
        System.out.println(s1 == s2);
        System.out.println(s1 == s3);
        System.out.println(s3 == s4);
        System.out.println("--------");

        //比较字符串内容是否相同
        System.out.println(s1.equals(s2));
        System.out.println(s1.equals(s3));
        System.out.println(s3.equals(s4));
    }
}

6.帮助文档查看String常用方法

方法名说明
public boolean equals(Object anObject)比较字符串的内容,严格区分大小写(用户名和密码)
public char charAt(int index)返回指定索引处的 char 值
public int length()返回此字符串的长度

五、StringBuilder类

1.StringBuilder类概述

        StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的。

2.StringBuilder类和String类的区别

        String类:内容是不可变的。

        StringBuilder类:内容是可变的。

3.StringBuilder类的构造方法

        常用的构造方法:

方法名说明
public StringBuilder()创建一个空白可变字符串对象,不含有任何内容
public StringBuilder(String str)根据字符串的内容,来创建可变字符串对象

        示例代码如下:

public class StringBuilderDemo01 {
    public static void main(String[] args) {
        //public StringBuilder():创建一个空白可变字符串对象,不含有任何内容
        StringBuilder sb = new StringBuilder();
        System.out.println("sb:" + sb);
        System.out.println("sb.length():" + sb.length());

        //public StringBuilder(String str):根据字符串的内容,来创建可变字符串对象
        StringBuilder sb2 = new StringBuilder("hello");
        System.out.println("sb2:" + sb2);
        System.out.println("sb2.length():" + sb2.length());
    }
}

4.StringBuilder类添加和反转方法

        添加和反转方法:

方法名说明
public StringBuilder append(任意类型)添加数据,并返回对象本身
public StringBuilder reverse()返回相反的字符序列

        代码示例如下:

public class StringBuilderDemo01 {
    public static void main(String[] args) {
        //创建对象
        StringBuilder sb = new StringBuilder();

        //public StringBuilder append(任意类型):添加数据,并返回对象本身
//        StringBuilder sb2 = sb.append("hello");
//
//        System.out.println("sb:" + sb);
//        System.out.println("sb2:" + sb2);
//        System.out.println(sb == sb2);

//        sb.append("hello");
//        sb.append("world");
//        sb.append("java");
//        sb.append(100);

        //链式编程
        sb.append("hello").append("world").append("java").append(100);

        System.out.println("sb:" + sb);

        //public StringBuilder reverse():返回相反的字符序列
        sb.reverse();
        System.out.println("sb:" + sb);
    }
}

5.StringBuilder和String相互转换

(1)StringBuilder转换为String

         public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String。

(2)String转换为StringBuilder

        public StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder。

        代码示例如下:

public class StringBuilderDemo02 {
    public static void main(String[] args) {
        /*
        //StringBuilder 转换为 String
        StringBuilder sb = new StringBuilder();
        sb.append("hello");

        //String s = sb; //这个是错误的做法

        //public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String
        String s = sb.toString();
        System.out.println(s);
        */

        //String 转换为 StringBuilder
        String s = "hello";

        //StringBuilder sb = s; //这个是错误的做法

        //public StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder
        StringBuilder sb = new StringBuilder(s);

        System.out.println(sb);
    }
}

6.帮助文档查看StringBuilder常用方法

方法名说明
public StringBuilder append (任意类型)添加数据,并返回对象本身
public StringBuilder reverse()返回相反的字符序列
public int length()返回长度,实际存储值
public String toString()通过toString()就可以实现把StringBuilder转换为String

总结

        以上就是今天分享的内容,本文主要介绍了封装和常用API,有需要改进的地方,欢迎各位小伙伴们留言交流,大家一起共同进步吖。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值