String和集合

一.面向对象(续)

三大特征:封装,继承,多态。

封装

封装原则:对象代表什么,就得封装对应的数据,并提供数据对应的行为。

一般会把成员变量使用private(私有,隐藏)关键字修饰(private修饰的成员只能在当前类中访问)
并为每个成员变量提供配套public修饰的getter,setter方法暴露其取值和赋值。
public class Student{
    private int age;        //成员变量用private修饰
//提供成套的getter和setter方法
    public void setAge(int age){
        if(age>=0&&age<=200){
            this.age=age;
        }else{
            System.out.println("您的年龄数据有误!");
        }
    }
    public int getAge(){
        return age;
    }
}
public class Test{
    public static void main(String[]args){
        Student s=new Student();
        s.setAge(-23);
        System.out.println(s.getAge());        //您的年龄数据有误!
    }
}

JavaBean

也可以称为实体类,其对象可以用于在程序中封装数据。

标准JavaBean书写要求:
①成员变量要求使用private修饰
②提供成员变量对应的setXxx()/getXxx()方法
③必须提供一个无参构造器,有参构造器可写可不写

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

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

区别

成员变量

局部变量

类中位置不同

类中,方法除外

常见于方法中

初始化值不同

有默认值

无默认值,使用前需先赋值

内存位置不同

堆内存

栈内存

生命周期不同

随着对象的创建而存在,随着对象的消失而消失

随着方法的创建而存在,随着方法的消失而消失

作用域

在所属的大括号中

二.String类

什么是String类

String 类定义的变量可以用于存储字符串,同时String类提供了很多操作字符串的功能,可以直接使用。

String常被称为不可变字符串类型
原因:String变量每次的修改其实是都产生并指向新的字符串对象。原本的字符串对象是没有改变的。
public static void main(String[]args){
    String name="新年";
    name+="快乐啊" ;
    System.out.println(name);    //新年快乐啊
}

创建字符串对象的两种方式

①直接用:""定义

String name="新年快乐啊";

②通过构造器来创建对象

String();

创建一个空字符串

String(String);

创建一个字符串

String(char[]c);

根据数组内容,来创建字符串对象

String(byte[]b);

根据字节数组的内容,来创建字符串对象

三.集合

什么是集合

集合和数组类似,也是一种容器,用于装数据的。

特点:
①集合的大小不固定,启动后可以动态变化,类型也可以选择不固定。
②集合非常适合做元素个数不确定,且要进行增删操作的业务场景。
③集合提供了许多丰富的功能,而数组功能单一。

ArrayList集合(支持索引)

添加元素的方法

方法名

说明

public boolean add(E e);

将指定的元素追加到集合的末尾

public void add (int index,E element);

在此集合中的指定位置插入指定元素

public static void main(String[] args){
    //创建ArrayList集合的对象
    ArrayList list=new ArrayList();
    //添加数据
    list.add("新年");
    list.add("快乐");
    System.out.println(list,add("啊"));    //添加成功返回true
    System.out.println(list);    //新年快乐啊
    //插入指定位置
    list.add(index:2.element:"真");
    System,out.println(list);    //新年真快乐啊
}

泛型

在编译阶段约束集合对象只能操作某种数据类型

ArrayList<String>
此集合只能操作字符串类型的元素
ArrayList<Integer>
此集合只能操作整数类型的元素
注意:集合中只能存储引用类型,不支持基本数据类型

集合的遍历

public static void main(String[] args){
    ArrayList <Integer>scores=new ArrayList<>();
    scores.add(98); 
    scores.add(77); 
    scores.add(66); 
    scores.add(89); 
    System.out.println(scores);
//将低于80分的成绩从集合中去掉
//错误示例
    for(int i=0;i<scores.size();i++){
        int score=scores.get(i);
        if(score<80){
            scores.remove(i);
        }
    }
    System.out.println(scores);        //98,66,89
//解决方案1
    for(int i=0;i<scores.size();i++){
        int score=scores.get(i);
        if(score<80){
            scores.remove(i);
            i--;
        }
    }
    System.out.println(scores);        //98,89
//解决方案2
    for(int i=scores.size()-1;i>=0;i--){
        int score=scores.get(i);
        if(score<80){
            scores.remove(i);
        }
    }
    System.out.println(scores);        //98,89

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值