发表于: 2017-04-14 07:52:26
2 1413
总结下这几天学习的内容:
面向对象
面向对象是基于面向过程的编程思想.
面向过程:强调的是每一个功能的步骤
面向对象:强调的是对象,然后由对象去调用功能
类:是一组相关的属性和行为的集合
对象:是该类事物的具体体现
定义类其实就是定义类的成员(成员变量和成员方法)
成员变量:和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。
成员方法:和以前定义方法是一样的,只不过把static去掉
类名对象名 = new 类名();
使用对象访问类中的成员:
对象名.成员变量
对象名.成员方法
成员变量和局部变量的区别
1,在类中的位置不同
成员变量在类中,方法外
局部变量在方法中或者方法声明上(形式参数)
2,在内存中位置不同
成员变量 在堆区
局部变量 在栈区
3,生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法调用而存在,随着方法的调用完毕而消失
4,初始值不同
成员变量 有默认值
局部变量 没默认值,必须先定义,赋值,最后使用、
封装
private 关键字是一个权限修饰符,可以修饰成员和成员方法,被private 修饰的成员只在本类中才能访问
private提供了对应的
设置方法:setxxx
访问方法:getxxx
封装原则
将不需要对外提供的内容都隐藏起来,提供公共方法对其访问
this
代表所在类的对象引用
方法被那个对象调用,this就代表那个对象
this关键字的使用
局部变量隐藏成员变量(局部变量和成员变量重名)
构造方法
给对象的数据初始化 格式:方法名与类名相同
没有返回值类型,连void都没有 没有具体的返回值
修饰符 构造方法名 (参数列表){}
注意事项
如果不提供构造方法,系统会给出默认构造方法
如果你提供了构造方法,系统将不再提供
构造方法可以重载
String类
字符串是由多个字符组成的一串数据
字符串可以看出是字符数组
构造方法
String类 构造方法
把字符串数据封装成字符对象
String s1 = new String("hello");
System.out.println("s1:"+s1);
把字符数组的数据封装成字符对象
char []chs = {'h','e','l','l','o'};
String s2 = new String(chs);
System.out.println("s2:"+s2);
把字符数组中的一部分数据封装成字符串对象
String s3 = new String(chs,1,4);
System.out.println("s3:"+s3);
把字符串直接赋值给字符对象
String s4 = "hello";
System.out.println("s4:"+s4);
String的特点:
String s1 = new String("abc");
String s2 = "abc";
1,S1首先查看字符串 abc 是否存在字符串常量池中,如果存在则直接指向,不存在,则创建一个
2,S2 查看常量池中 abc 是否存在,结果已经存在了,就直接指向引用了
区别
前者s1 创建了两个对象 堆内存中的new String 和 字符串常量区的 abc
s2只创建了一个对象 abc 如果存在 abc 那就一个对象也没创建
同时 String s = "abc";
字符串 abc作为一个对象也可以调用String类的方法
常用方法
判断功能方法
boolean equals 比较字符串内容是否相同
boolean equalslgnoreCase 比较字符串内容是否相同,忽略大小写
boolean startsWith:判断字符串对象是否以指定的str开头
boolean endsWith:判断字符串对象是否以指定的str结尾
获取功能方法
int length():获取字符串的长度,其实也就是字符个数
char charAt(int index):获取指定索引处的字符
int indexOf(String str):获取str在字符串对象中第一次出现的索引,没有返回-1
String substring(int start):从start开始截取字符串到字符串结尾
String substring(int start,int end):从start开始,到end结束截取字符串;包括start
字符串的遍历
统计字符串中大写、小写及数字字符个数
转换功能方法
char[] toCharArray():把字符串转换为字符数组
String toLowerCase():把字符串转换为小写字符串
String toUpperCase():把字符串转换为大写字符串
键盘录入一个字符串,把该字符串的首字母转成大写,其余为小写。
去除空格和分割功能方法
String trim()去除字符串两端空格
String[] split(String str)按照指定符号分割字符串
把数组中的数据按照指定格式拼接成一个字符串
举例:int[] arr = {1,2,3}; 输出结果:[1, 2, 3]
类名作为形式参数案例:需要的其实是该类的对象
class Test {
public void show(Person p){
p.eat();
类名作为返回值案例:返回的其实是该类的对象
class Test {
public Person show(){
Person p = new Person("小王");
return p;
}
StringBuilder和String区别?
String的内容是固定的
StringBuilder的内容是可以改变的
明天计划:学习集合
遇到的问题:感觉时间不够用这几天学面向对象,String类方法 学的特别慢,消化的也很慢
收获:
能够理解面向对象的思想,明确类与对象关系
根据类的定义定义学生类
能够创建对象,并且使用对象访问类中的成员
能够说出成员变量和局部变量的区别,运用private关键字
能够用封装的思想定义一个标准类,说出this可以解决的问题
能够运用构造方法创建对象
评论