甲乙丙打怪升级DAY3 Java语言基础(三)

Java语言基础(三)

一、类和对象

对象

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

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

使用:创建对象 类名 对象名 = new 类名();

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

(注:new产生的内容在堆内存 堆内存中的成员有默认值  main方法 方法在栈内存中 存储空间只有一个 对象可以公用一个方法 但属性不一定

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

类是对象的数据类型 是具有相同属性和行为的一组对象的集合

定义:public class 类名{成员变量 成员方法}

二、成员变量和局部变量

成员变量

类中方法外的变量 堆内存 随对象存在消失 有默认的初始化值

局部变量

方法中的变量(或方法声明上)栈内存 随方法调用存在消失 无默认的初始值 必须先定义 赋值 才能使用

三、封装

private关键字

权限修饰符 修饰成员(变量和方法)

作用:保护成员不被其他类使用 被private修饰的成员只能在本类中才能访问

提供“get变量名()”方法 用public修饰 “set变量名(参数)”方法 用public修饰

this关键字

同名:this 成员变量 未加this 局部变量

不同名:未加this 成员变量

什么时候使用this?解决局部变量隐藏成员变量

代表所在类的对象引用 方法被哪个对象调用 this就代表哪个对象

封装

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

封装原则: 类的某些信息隐藏在内部 不允许外部程序直接访问 而是通过提供的方法来实现对隐藏信息的操作和访问

成员变量private getXxx() setXxx()方法

安全性 复用性

构造方法

一种特殊的方法 作用:创建对象,完成对象数据的初始化

没有构造器时,系统会默认给我们分配一个空构造器。为了预防无构造器而导致的报错,建议在类中写一个空构造器。<推荐>无论是否使用,都手工书写无参构造方法

idea:alt+insert 不选择属性生成一个空构造器,选择属性构成一个有参数的构造器,提高工作效率。

public class 类名{ 修饰符 类名(参数){...}}

若没有定义构造方法,系统将给出一个默认的无参数构造方法。

若定义构造方法,系统将不再提供默认的构造方法。

若自定义带参构造方法,还要使用无参构造方法,就必须再写一个无参构造方法

四、String StringBuilder

API

Application Programming Interface  应用程序编程接口

Java API:JDK中提供各种功能的Java类,将底层的实现封装了起来

String

java.long包下 不需要导包

String类代表字符串 Java程序中所有的双引号字符串,都是String类的对象。

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

(注:JDK8以前是字符数组,JDK9以后是字节数组

String构造方法

常见构造方法:

//1.String():无参构造
String s1 = new String();
//相当于String s1 = "";
//创建一个空白字符串对象,不含任何内容

//2.String(byte[] bytes):使用一个byte[]数组构造
byte[] bytes = {97,98,99,100};
String s2 = new String(bytes);
//根据字节数组的内容来创建字符串对象

//3.String(char[] chars):使用一个char[]数组构造
char[] chars = {'a','b','c','d'};
String s3 = new String(chars);
//根据字符数组的内容来创建字符串对象

//4.String(String s):使用一个String构造一个String
String s4 = new String("Hello world!");
//直接赋值的方式来创建字符串对象

常用String s = “hello”;

String对象的特点:通过new创建的String字符串对象,每一次new都会申请新内存空间。虽然内容相同,但地址不同。以“  ”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在代码中出现几次,JVM都只会建立一个String对象,并在字符串池中维护。

字符串的比较

使用==比较: 基本类型:比较数据值是否相同/引用类型:比较地址值是否相同

字符串是对象用equals()来实现比较内容是否相同

public boolean equals(Object anObject);

通过帮助文档查看String中的方法

public boolean equals(Object anObject);

public char charAt(int index);  返回指定索引处的char值,字符串的索引也从0开始

public int length();  字符串长度  (注:数组长度:数组名.length

publicn boolean endWith(Stirng suffix);  测试此字符是否以指定的后缀结尾

StringBuilder

一个可变的字符串类 可以看成是一个容器

StringBuilder构造方法

public StringBuilder()创建一个空白可变字符串对象,不含有任何内容。

public StringBuilder(String str)根据字符串的内容赖床加可变字符串对象。

public StringBuilder append(任意类型) 添加数据,并返回数据本身。

public StringBuilder reverse() 返回相反的字符序列

(注:链式编程:sb.append("hello").append("world").append("java");

StringBuilder和String相互转换

public String toString();  StringBuilder->String

public StringBuilder(String s);  String->StringBuilder //利用StringBuilder构造方法

补充:

1.判断字符大小写/数字

大写 ch>='A'&&ch<='Z'

小写 ch>='a'&&ch<='z'

数字 ch>='0'&&ch<='9'

2.Non-static method cannot be referenced from a static context

静态方法无法调用自己定义的非静态方法

解决方法:1)将非静态方法改为静态方法,加static

                  2)在main主方法实例化非静态方法的对象

3.内容比较(upper case/lower case)

区分大小写  public boolean equals(String s);

不区分大小写  public boolean equalsIgnoreCase(String s);

4.String 拼接可用"=+"

五、集合基础 ArrayList

集合

集合类特点

提供一种存储空间可变的存储模型,存储数据容量可以发生改变。

ArrayList<E>

可调整大小的数组实现 “容器”

在出现E的地方用引用型数据类型替换(z.B. String、Student

public ArrayList();  创建空集合对象

public boolean add(E e);  将指定元素追加到此集合末尾

(注:用逗号分隔开,最后一个元素后面没有逗号

public void add(int index, E element);  在此集合中的指定位置插入指定元素

(注:后面元素向后移一个位置,要注意index范围0~length,不要索引越界

ArrayList<String> array = new ArrayList<>();

(注:输出时只有一个[],无内容

ArrayList集合常用方法

public boolean remove(Object o);  删除指定元素,返回删除是否成功

public E remove(int index);  删除指定索引处的元素,返回被删除的元素

public E set(int index, E element);  修改指定索引处的元素,返回被修改的元素

public E get(int index);  返回指定索引处的元素

public int size();  返回集合中的元素个数

(注:index注意索引越界0~length

补充:

1)sc.close();  停止Scanner录入

2)System.exit(0);  JVM退出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值