java的第八天

复习回顾

1、类和对象的关系
	类是对象的模板, 对象是类的实例
	
2、类的定义格式
public class 类名{
   
	成员变量 (表示类的属性)
	成员方法 (表示类的行为或者功能)
	构造方法 (创建对象, 初始化成员变量的值)
}

3、对象的使用
	先定义类, 再通过类创建对象
	类名  对象名 = new 类名();
	访问成员变量: 对象名.成员变量名  
	访问成员访问: 对象名.成员方法名()

4private关键字的作用
	权限修饰符,private修饰的成员只能在本类中使用
	修饰成员变量, 成员方法, 构造方法,5this关键字的作用
	代表当前对象的引用
	使用场景: 形参名字和成员变量同名时, 使用this来访问成员变量

6、构造方法的定义格式和特点
    public 类名(参数列表){
   
        初始化代码;
    }
    
	1. 通过new关键字调用
	2. 作用: 创建对象, 初始化成员变量的值
	3. 每次创建对象, 都会调用一次构造方法
	4. 构造方法可以重载

1 API

1.1 API概述
  • 什么是API

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

    ​ JDK已有的一些功能 Scanner Random String Arrays ArrayList Math Date

  • java中的API

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

1.2 如何使用API帮助文档
  • 打开帮助文档

[外链图片转存失败(img-HW2zvX1E-1563073359675)(assets/01.png)]

  • 找到索引选项卡中的输入框

[外链图片转存失败(img-EklWpy5I-1563073359676)(assets/02.png)]

  • 在输入框中输入要查找的类,例如Random。

[外链图片转存失败(img-g8MLfdNE-1563073359677)(assets/03.png)]

  • 看类在哪个包下

[外链图片转存失败(img-tXMvhVDm-1563073359679)(assets/04.png)]

  • 看类的描述

[外链图片转存失败(img-Ym8q9glV-1563073359681)(assets/05.png)]

  • 看构造方法

[外链图片转存失败(img-H2GKTUsY-1563073359683)(assets/06.png)]

  • 看成员方法

[外链图片转存失败(img-FpMRdiEv-1563073359684)(assets/07.png)]

快速生成方法调用的返回值:Ctrl + Alt + V

import java.util.Scanner;
public class ScannerDemo {
   
    public static void main(String[] args) {
   

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");

        //读取字符串, 直到回车换行结束
        //String line = sc.nextLine();

        //读取字符串, 直到空格结束
        String line = sc.next();
        System.out.println(line);
    }
}

2 String类

2.1 String类概述

​ String 类代表字符串类,Java 程序中所有的双引号字符串(比如"Hello"),都是 String 类的对象。

String 类在 java.lang 包下,使用时不需要导包。

2.2 String类的特点
  • 字符串不可变,它们的值在创建后不能被更改。
  • 虽然 String 的值是不可变的,但是它们可以被共享。(常量池)
  • 字符串的底层原理是字节数组。
2.3 String类的构造方法
//无参构造方法
String()

//常见带参构造方法
String(String original) //根据字符串常量创建字符串对象
String(char[] value)  //通过字符数组创建字符串对象(常用)
String(char[] value, int begin, int length)  //从数组的begin开始,共length个字符创建字符串
String(byte[] values)//根据byte数组创建字符串
    
//最常用的字符串定义格式
String s = "字符串内容";

示例代码:

public class StringDemo {
   
	public static void main(String[] args) {
   
        //1、String():创建一个空白字符串对象,不含有任何内容
        String s1 = new String();
        System.out.println("s1:" + s1);
        
		//2、String(String original) 根据字符串数据创建字符串对象
		String s2 = new String("hello");
		System.out.println(s2);
		
		//3、String(char[] value)  通过字符数组创建字符串对象
		char[] value = {
   'h','e','l','l','o'};
		String s3 = new String(value);
		System.out.println(s3);
		
		//4、String(char[] value, int offset, int length) 
        //根据字符数组的一部分数据创建字符串对象
		String s4 = new String(value,0,3); //hel
		String s5 = new String(value,2,3); //llo
		System.out.println(s4);
        System.out.println(s5);
        
        //5、String(byte[] values)  根据byte数组创建字符串
        byte[] arr = {
   97,98,99};
        String s6 = new String(arr); //abc
        System.out.println(s6);
		
		//6、最常用的方式:使用字符串常量构建
		String s7 = "hello";
		System.out.println(s7);
	}
}
2.4 String创建对象的特点

​ 1、使用new关键字创建字符串对象时,每次都会在堆中创建对象,并返回堆中的地址值给变量。所以new出来的字符串对象,每一个的地址都不同。

​ 2、创建字符串常量时,JVM首先在常量池中查找是否存在该字符串,找到了直接引用常量池地址,否则在常量池里创建字符串,并将地址返回给变量。

public class StringDemo2 {
   
	public static void main(String[] args) {
   
		//每次都会在堆中创建对象,并返回地址
		String s1 = new String("hello");
		String s2 = new String("hello");
		
        //判断常量池中是否存在“hello”常量,如果存在直接返回地址值。
        //如果不存在,在常量池中创建“hello”对象,并返回地址值。
		String s3 = "hello";
		String s4 = "hello";
		
		System.out.println( s1==s2 ); //false
		System.out.println( s1==s3 ); //false
		System.out.println( s3==s4 ); //true
	}
}

测试案例

【练习】下列代码运行后输出的结果是什么?
   public static void main(String[] args) {
   
        String s1 = new String("abc");
        String s2 = "abc";
        System.out.println(s1 == s2); //false
        
        
        String s3 = "a" + "b" + "c";  //String s3 = "abc";
        String s4 = "ab" + "c";  //String s4 = "abc";
        System.out.println(s3 == s4); //true
        System.out.println(s2 == s3); //true
        
        String s5 = "ab";
        String s6 = s5+"c";  // new String的过程
        System.out.println(s6 == s2); //false
}
2.5 字符串的比较

==号的作用:

  • 基本数据类型:比较的是具体的数据值。
  • 引用数据类型:比较的是内存地址值。

判断字符串内容是否相等:

public boolean equals(Object anObject) //严格区分大小写(判断密码)
public boolean equalsIgnoreCase(String anotherString) //不区分大小写 (判断验证码)

案例代码

public class StringDemo2 {
   
	public static void main(String[] args) {
   
		//每次都会在堆中创建对象,并返回地址
		String s1 = new String("hello")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值