day09_String类 和 static关键字

今日内容

  •   String类
  •   Static关键字

String类

  三种构造方法:

    public String() : 创建一个空白的字符串,不包含任何内容   

格式:
String str =  String()

    public String(char[] array):  根据字符数组的内容,来创建对应的字符串

    public String(byte[] array):  根据字节数组内容,来创建对应的字符串

  一种直接创建:

    String str = “abc”//右边直接用双引号

       如果用双引号包裹,一定是在堆中的字符串常量池中,也是一个对象,String str对应的地址值是堆中的字符串常量池中的对象,常量池中的对象的地址值指向byte[]字节组 

    备注:直接写上双引号,系统也会认定字符串对象。

  1.对于引用类型来说,==进行的是地址值比较

  2.对于基本数据类型来说,==比较的是数值

  3.双引号直接写的字符串在常量池当中,new的string形式不在常量池当中

常用方法

  判断功能的方法

    public booean equals(Object anObject): 将此字符串与指定对象进行比较

    public boolean equalslngoreCase(String anotherString):将此范围的

  获取功能

    public int length(): 返回字符串的长度

    public String concat(String str): 将指定的字符串连接到该字符串的末尾

    public char charAt(int index): 返回指定索引处的char值

    public int indexOf(String str): 返回指定的子字符串第一次出现在该字符串内的索引值,如果找到返回子字符串第一个字符所在的索引值,如果没有找到则返回

    public String substring(int beginIndex): 返回一个子字符串,从beginlndex开始截取该字符串到该字符串的末尾

    public String substring(int beginIndex,int endIndex): 返回一个子字符串,从beginIndex 到endIndex区间截取该字符串,包含beginIndex索引处的值,不包含endIndex索引处的值。左闭右开。

  转换功能

    public char[] toCharArray(): 将此字符串转换成新的字符数组

    public byte[] getBytes(): 使用平台默认的字符集将该字符串编码转换成新的字节数组。

    public String replace(CharSequence oldString,CharSequence newString): 将所有出现的老的字符串换成新的字符串,返回替换掉之后的新的字符串

    备注:CharSequence是一个接口,也是一种引用数据类型,意思就是可以接收字符串参数数据类型

Static关键字 

  static关键字的使用,它可以修饰成员变量和成员方法。被修饰的成员是【属于类】的,而不单单是属于某个对象的也就是,既然属于类的,那就不需要通过创建对象来调用类中的成员信息。

 定义和使用格式

  静态类变量

     当成员变量被static修饰,该变量就称为【类变量】。该类的每个对象都【共享】同一个类变量的值。任何对象都可以更改类变量的值。类变量也可以不通过创建类对象的方式进行操作,通过类也可以进行操作。

    定义格式:

static 数据类型  变量名
static int Xxxx;

  静态类方法:

    当成员方法一旦被static关键字修饰时,该方法称为【类方法】。类方法一般是通过类名直接调用,而不需要单独创建对象来调用。调用方式很简单。习惯称为【静态方法】。可以通过类直接调用,所以不用封装

    定义格式:

修饰符        static  返回值类型   方法名(参数列表){
              //方法体内容
            }

例如:
public static String Xxxx(int[] arr){
        //方法体内容就是如何
        //......
        //必须有返回语句  return  返回值;
}

 

   静态方法调用的注意事项

    静态方法可以直接访问类变量和静态方法

    静态方法不能直接访问普通的成员变量和成员方法。反之,成员方法可以【直接访问】类变量和静态方法

    静态方法中不能使用this关键字。

  调用格式

    静态方法建议通过类来调用,但是也可以通过对象来调用,会出现警告信息(不建议使用对象来调用)

  格式

    //访问类变量
    类名.类变量名;
    //访问静态方法
    类名.静态方法名(参数);

  备注:这些不能直接访问的成员信息,可以间接的通过实例化对象来调用

  static修饰的内容

    是随着类的加载而加载而且只会加载一次

    存储于一块固定的内存区域(在静态域),所以,可以被类直接调用。

    他优先于对象存在,所以可以被类的所有对象所共享。

  静态代码块

    静态代码块:定义在成员变量位置,被static修饰的代码块{}

    位置:类中方法外

    执行:随着类的加载而加载而且只会加载而且只会执行一次,优先于main方法和构造方法执行

  格式:   

public class ClassName{
    static{
        //执行语句  多条执行语句。
        //.....
    }
 public static void main(String[] args){
     //static {}在方法内是错误的   
 }  
}

  备注:static 可以修饰成员方法,成员变量,代码块。在使用过程中,如果你不想在不创建对象的情况下,去调用成员变量,成员方法,可以定义乘静态的。对应于静态代码块来说,通常作用是对类中的成员变量进行初始化。

 

posted @ 2020-11-19 22:24  wajueji  阅读(93)  评论(0编辑  收藏  举报