JAVA学习笔记day04

目录

1.类和对象

1.1什么是对象

1.2什么是类

1.3什么是对象的属性

1.4什么是对象的行为

1.5类和对象的关系

1.6类的定义

1.7对象的使用

2.成员变量和局部变量

2.1什么是成员变量和局部变量

2.2成员变量和局部变量的区别

3.封装

3.1private关键字

3.2this关键字

3.3封装

4.构造方法

4.1构造方法概述

4.2构造方法的注意事项

5.API

6.String

6.1String概述

6.2String对象的特点

6.3字符串比较

6.4遍历字符串

7.StringBuilder

7.1StringBuilder概述

7.2StringBuilder构造方法

7.3StringBuilder的添加和反转方法

7.4StringBuilder 和String 相互转化


1.类和对象

1.1什么是对象

万物皆对象,客观存在的事物皆对象

1.2什么是类

类是对现实生活中一类具有相同属性和行为的事物的抽象

1.3什么是对象的属性

属性:对象具有的各种特征,,每个对象的每个属性都拥有特定的

1.4什么是对象的行为

行为:对象能够执行的操作

1.5类和对象的关系

类是对象的抽象,对象是类的实体

1.6类的定义

类的重要性:是java程序的基本组成单位

类是什么:是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有的属性和行为

类的组成:

  • 属性:在类中通过成员变量来实现(类中方法外的变量)
  • 行为:在类中通过成员方法来实现,(和前面的方法相比去掉static关键字即可)

类的定义:

public class 类名{
       //成员变量
        变量1的数据类型 变量一;
        变量2的数据类型 变量二;
        .....

        //成员方法
        方法1;
        方法2;
        .....
}

1.7对象的使用

创建对象:

  • 格式:类名 对象名=new 类名()
  • 范例:phone p=new phone()

使用对象:

  • 使用成员变量:对象名.变量名;
  • 使用成员方法:对象名.方法名();

2.成员变量和局部变量

2.1什么是成员变量和局部变量

成员变量:类中方法外的变量

局部变量:方法中的变量

2.2成员变量和局部变量的区别

3.封装

3.1private关键字

  • 是一个权限修饰符
  • 可以修饰成员(成员变量和成员方法)
  • 作用是保护成员不被别的类使用,被private修饰的成员只在本类中才能访问

针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作:

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

3.2this关键字

3.3封装

1、封装概述

是面向对象三大特征之一(封装、继承、多态)

是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的

2、封装原则

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

3、封装好处

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

4.构造方法

4.1构造方法概述

构造方法是一种特殊的方法,作用:创建对象

格式:
public class 类名{
    修饰符  类名(参数){
    }
}

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

4.2构造方法的注意事项

1、构造方法的创建

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

2、构造方法的重载

  • 如果定义了带参构造方法,还要使用无参构造方法,就必须自己写一个重载的无参构造方法

3、推荐的使用方式

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

5.API

5.1API概述

API:应用程序编程接口

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

6.String

6.1String概述

String在java.lang包下,所以使用的时候不用导包

String类代表字符串,java语言中所有的字符串文字都被实现为此类的实例,也就是说,java程序中所有的双引号字符串,都是String类的对象

字符串的特点:

  • 字符串不可变,它们的值被创建后不能被更改
  • 虽然String的值是不可变的,但是他们可以被共享
  • 字符串效果上相当于字符数组(char []),但是底层原理是字节数组(byte[])

6.2String对象的特点

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

char[] chs={'a','b','c'};
String s1=new String(chs);
String s2=new String(chs);

上面的代码中,JVM会首先创建一个字符数组,然后每一次new的时候都会有一个新地址,只不过s1和s2参考的字符串内容是相同的

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

String s3="abc";
String s4="abc";

在上面的代码中,针对第一行代码,JVM会创建一个String对象放在字符串池中,并给s3参考;

第二行则让s4直接参考字符串池中的String对象,也就是说它们本质上是一个对象

6.3字符串比较

使用==做比较

  • 基本类型:计较的是数据值是否相同
  • 引用类型:比较的是地址值是否相同

字符串是对象,它比较内容是否相同,是通过一个方法来实现的,这个方法叫:equals()

public class compare{
    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.4遍历字符串

键盘录入一个字符串,使用程序实现在控制台遍历该字符串

  • public char charAt(int index):返回指定索引处的char值,字符串的索引也是从0开始的
  • 数组的长度:数组名.length
  • 字符串的长度:字符串对象.length()
import java.util.scanner
public class Stringtest{
    public static void main(String[] args){

        //键盘录入一个字符串,用scanner实现
        Scanner.sc=new scanner(System.in);
        System.out.println("请输入一个字符串");
        String line=sc.nextline();
        
        //遍历字符串,首先要能够获取到字符串中的每一个字符
        for(int i=o;i<line.length();i++){
            System.out.println(line.charAt(i));
        }
        
    }
}

7.StringBuilder

7.1StringBuilder概述

 

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

String和StringBuilder的区别:

  • String:内容是不可变的
  • StringBuilder:内容是可变的

7.2StringBuilder构造方法

String Builder  s1=new String Builder();

String Builder s2=new String Builder("hello");

7.3StringBuilder的添加和反转方法

append:

StringBuilder  s3=new StringBuilder();

s3.append("hello")

s3.append("world")

等价于s3.append("hello").append("world");

reverse:

StringBuilder  s4=new StringBuilder("hello world");

s4.reverse();//此时s4的值为dlrow olleh

7.4StringBuilder 和String 相互转化

通过StringBuilder 的toString方法将StringBuilder 转化为String :

StringBuilder  sb=new StringBuilder();
sb.append("hello");
String s=sb.toString();
 

通过StringBuilder的构造方法将String 转化为StringBuilder  :

String s="hello";
StringBuilder sb=new StringBuilder(s);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值