本帖最后由 阿里云 于 2017-12-8 14:31 编辑
- 基础班
- 主要内容
- day01:java环境,常量变量,数据类型
- day02:Eclipse的概述和安装,运算符,Scanner键盘录入对象
- day03:流程控制语句,循环语句
- day04:Random随机数对象,数组
- day05:方法
- day06:断点调试
- day07:面对对象思想,定义类
- day08:查询API文档,字符串类,StringBuilder类
- day09:快速生成类,集合类,集合版学生管理系统
- day10:IO流,FileReader,FileWriter,BufferedReader,BufferedWriter
- day11:IO版学生管理系统
- 笔记帖子网址
day07- 面向过程思想:之前所用的编程方式是面对过程
- 面对对象思想:对同一类进行封装调用,简称OOP
- 强调的是对象,然后由对象去调用功能
- 特点
- 符合思考习惯
- 将复杂的事情简单化
- 将我们从执行者变成指挥者
- 学习编程语言就是为了把现实世界的事物模拟出来,实现信息化.
- 如何表示现实世界的事物的呢?
- 属性=>【成员变量:类中,方法外;不需要给初始值,int初始值为0,string初始为null...】
- 行为=>【成员方法:之前所学去掉static关键字】
- Java语言最基本的单位是类,通过类来体现现实世界事务的,类是一组相关属性和行为的集合,对象是该事物的具体体现
- 如何使用类
- 如何描述类
- 方法共用:
- 例如:Phone p=new Phone();Phone p2=new Phone();//p2改变,p不改变
- 两个引用指向同一个对象:
- 例如:Phone p2=p;//此代码没有意义,p2改变,p也改变
- 成员变量和局部变量的区别:
- 在类中的位置不同
- 成员变量:类中,方法外
- 局部变量:方法中或者方法声明上(形式参数)
- 在内存中的位置不同
- 生命周期不同
- 成员变量:随着对象存在和消失
- 局部变量:随着方法存在和消失
- 初始化值的问题
- 成员变量:有默认值
- 局部变量:没有默认值,需要先赋值后使
- private关键字【私有的,最小权限,与public相反】
- 是一个修饰符,可以修饰成员变量和成员方法
- 被修饰的成员只能在本类中被访问
- 针对private修饰的成员变量
- 我们会相应的提供getXxx()和setXxx(),用于获取和设置成员变量的值,方法用public修饰
- 这样我们可以在getXxx()或setXxx()增加一些安全设置等等
- 封装
- 三大特征之一(另外有继承、多态)
- 外界无法直接操作和修改
- 封装原则
- 将不需要对外提供的内容都隐藏起来
- 把属性隐藏,提供公共方法对其访问(getter/setter)
- 封装好处
- 当局部变量和成员变量相同时,在调用局部变量时选用的是局部变量!(就近原则)如果想调用成员变量必须使用this关键字,this必须在方法中使用
- 构造方法:给对象的数据进行初始化
- 格式
- 权限修饰符 类名(参数列表){ 方法体 }
- 方法名和类名相同
- 没有返回值类型,连void都不能写
- 没有具体的返回值
- 如何调用构造方法
- 通过new关键字调用
- 格式:类名 对象名=new 构造方法(...);
- 构造方法的注意事项
- 无参构造方法的调用:Student s=new Student();
- 有参构造方法的调用:Student s=new Student("林青霞",28);
- 如果没有在类中给出构造方法,系统将提供默认的无参构造方法
- 如果提供了构造方法,系统将不在提供无参构造方法,我想使用就必须自己提供无参构造方法(推荐:自己编写无参构造方法)
- 构造方法也是可以重载的
- 成员变量赋值方法
- setXxx()方法:例如s.setName("林青霞",28)
- 代参构造方法:例如Student s=new Student("林青霞",28);
定义一个类的实例:
public class Student{ //main方法不适合放具体的一个类里面,测试时可以使用 //成员变量
String age;//一般不这样定义,不安全
private String name;//一般使用private配合set/get方法 //无参构造
public Student(){} //有参构造
public Student(String name){ this.name=name;} //get/set方法
public String getName(){ return this.name;} public void setName(String name){ this.name=name;} //其他成员方法
public boolean eat(){ System.out.println("吃饭"); return false;}
} - 创建对象:
- Student s=new Student();//无参构造,
- Student s=new Student("林青霞");//有参构造,初始化变量
- 调用变量:
- s.age 调用无private的成员变量,一般不这样
- s.getName() 调用有private的成员变量
- 调用方法:
- javaBean
- Random/Scanner:用于实现某种特定功能.
day08- API概述
- 学习查询API文档(帮助文档)
- 点击显示=>索引=>输入框中录入内容 例如random
- 看包:java.lang包下不用导包,其他都需要导包(一般自动导入了)
- 看类的功能描述:生成随机数
- Object:是类的层次结构中的根类,所有类都直接间接继承自该类,如果一个方法的形式参数是它,那么我门可以传递它的任意的子类对象
- 看构造方法:
- 看成员方法:
- 如果需要,可以单击该方法查看详细信息
字符串类构造方法
字符串类常用功能(成员方法)
- 判断【都返回布尔值】
- boolean equals(Object obj):【比较内容是否相同,string.equals("886") 应写成 "886".equals(string),使用常量调用方法,防止string为null,防止空指针异常,导致系统出错。】
- boolean equalsIgnoreCase(Object obj):比较是否相同,但是不区分大小写【IgnoreCase忽略大小写】
- boolean startswith(String prefix):【是否以指定字符串开头,常用于判断语句,例如姓氏的判断】
- boolean endsWith(String suffix):【是否以指定字符串结尾】
- boolean contains(CharSequence s):【是否包含指定的字符串】
- 获取
- int length():获取字符串的长度,【注意:这里是方法,需要小括号!可用于遍历字符串!】
- char charAt(int index):获取指定索引处的字符【可用于遍历字符串!】【string.charAt(0) != '0';不要写成string.charAt(0) != 0;】
- int indexOf(String str):获取str在字符串对象中第一次出现的索引【没有则返回-1】
- String substring(int start):【从start索引开始截取字符串, 到字符串的末尾】
- String substring(int start, int end):从start开始截取字符串,包括start,到end结束【不包括end!】
转换【都以to开头】
- char[] toCharArray():将字符串转换为字符数组【可用于遍历】
- String toLowerCase():【将字符串转换为小写字符串】
- String toUpperCase():【将字符串转换为大写字符串】
其他常用功能!
- 去空格
- String trim();//去除字符串两端的半角空白字符(空格, 制表符, 换行等), 中间的空白字符无法去掉
- 分割
- String[] split(String regex);//以指定正则表达式将字符串分割为多个部分【返回数组】
- 替换字符串
- String replace(CharSequence target, CharSequence replacement);//使用指定的replacement字符串替换当前字符串中的所有target字符串【可用于删除,替换成空字符串""即可】
- String replaceAll(String regex, String replacement):使用指定的replacement字符串替换当前字符串中的所有符合【regex正则表达式】的部分
- String replaceFirst(String regex, String replacement):【将该对象中匹配regex正则的第一个出现的字符串替换为replacement, 并返回替换后的字符串】
- StringBuilder: 用于高效拼接字符串的类!
- String类进行字符串拼接又耗时又消耗内存资源,所以我们使用StringBuilder
- 是一个可变的字符串,字符串缓冲区类
- StringBuilder构造方法
- StringBuilder():创建一个StringBuilder对象
- StringBuilder(String str):使用一个String创建一个StringBuilder对象. 【用于将String转换为StringBuilder】
- StringBuilder成员方法:
- int capacity():返回当前StringBuilder的容量,表示存放最大值
- int length():返回当前StringBuilder中保存的字符数
- StringBuilder reverse():【反转当前StringBuilder中保存的字符串内容】不用接收返回值
- StringBuilder append(任意类型):追加内容到当前字符串的尾部【添加数据并返回自身对象!】所以可以这样,链式编程:sb.append("hello").append(123).append(true);
- String toString():【将StringBuilder对象转换为String,反向转换要通过上文的构造方法】
|
|