1、作业解析
1.定义一个学生类(Student),他有三个属性(全局变量) 姓名name和年龄age和性别gender,定义三个函数分别打印出姓名、年龄和性别
-- 全局变量和局部变量同名,赋值的时候加上this
2.基于面向对象的思想写一个简单的计算器类Calculator,定义四个函数,实现两个int类型数据的加减乘除,通过创建对象,调用函数,完成两个整数3与4的加减乘除运算
public class Calculator { public int add(int x, int y){ return x+y; } public int sub(int x, int y){ return x-y; } public int multi(int x, int y){ return x*y; } public int div(int x, int y){ //处理当被除数为0的时候 if(y == 0){ System.out.println("被除数不能为0"); return -1; } return x/y; } }
public class CalculatorTest { public static void main(String[] args) { //1、创建Calculator对象 Calculator calculator = new Calculator(); System.out.println(calculator.add(10,20)); System.out.println(calculator.sub(10,20)); System.out.println(calculator.multi(10,20)); System.out.println(calculator.div(10,20)); } }
2、String类常用API
- 字符串比较-equals(区分大小写)-equalsIgnoreCase(不区分大小写)
- 字符串拆分- split (注意特殊字符,比如说|分割时,要\| 才能分割)
String a = "hello|lemon|Python|Java";
String[] arr = a.split("\|");
- 字符串截取-substring(索引值切割)
- 替换-replace
- 字符串包含-contains
- 判断是否以指定字符串开头或结尾-startsWith-endWith
- 字符串拼接-concat
- 判空-isEmpty
- 去掉左右空格-trim(只能去掉左右的空格,不能去掉中间的空格)
- 字符串长度-length
- 字符串转数组-toCharArray
- 转大小写-toUpperCase-toLowerCase
public class StringApiTest { public static void main(String[] args) { //String a = "hello"; //String b = "HELLa"; //1、equals 比较字符串是否相等 区分大小写 //System.out.println(a.equals(b)); //2、equalsIgnoreCase 比较字符串是否相等 不区分大小写 //System.out.println(a.equalsIgnoreCase(b)); //3、split 分割/拆分字符串 参数为正则表达式 /*String a = "hello|lemon|Python|Java"; String[] arr = a.split("\|"); for(int i=0; i<arr.length; i++){ System.out.println(arr[i]); }*/ //特别注意:字符串变量的值不能被改变的 //4、substring 截取字符串 /* String a ="hellolemon"; String b = a.substring(5,8); System.out.println(b);*/ //5、replace 替换 /*String a = "pythonbesot"; //替换单个字符 //String b = a.replace('o', 'a'); //替换连续的字符 String b = a.replace("besot","another"); System.out.println(b);*/ //6、contains 包含 //String a = "pythonbest"; //System.out.println(a.contains("java")); //7、startsWith endsWith 以。。开头或者结尾 /*String a ="lemon-123456"; System.out.println(a.startsWith("lemon")); System.out.println(a.endsWith("123456"));*/ //8、concat 拼接 /* String a = "Java"; String b = "Python"; System.out.println(a.concat(b)); System.out.println(a+b);*/ //9、trim 去掉空格 /*String a = " He llo "; System.out.println(a.trim().length());*/ //10、toCharArray 字符数组 /*String a ="PythonJava"; char[] arr = a.toCharArray(); //增强式for循环 foreach /*for(char data : arr){ System.out.println(data); } for(int i=0; i<arr.length; i++){ System.out.println(arr[i]); }*/ //11、toUpperCase toLowerCase 转成大写/小写 //String a = "Lemon"; //System.out.println(a.toUpperCase()); //System.out.println(a.toLowerCase()); //12、isEmpty 判空 //String a =" "; //System.out.println(a.isEmpty()); //空格 、 null、 空的字符串 //int b = null; /*String b = null; Father father = null; father = new Father();*/ // == 和equals的区别 //int a = 10; //int b = 10; /*System.out.println(a==b); System.out.println(a.equals(b)); Vivo vivo1 = new Vivo(); System.out.println("vivo1地址:"+vivo1); Vivo vivo2 = new Vivo(); System.out.println("vivo2地址:"+vivo2); System.out.println(vivo1 == vivo2);*/ String a="hello"; String b="hello"; System.out.println(a==b); } }
3、== 和 equals 区别
- == 基本数据类型比较的是值,引用数据类型比较的是地址值。
- equals 是Object类中的方法,基本数据类型无法调用。
- equals默认使用==号,重写之后一般比较的是内容(String)。
4、修饰符
4.1 访问修饰符
分为public,protected,默认修饰符(不写),private,从左向右权限逐步降低
4.2 非访问修饰符
static 静态(共享)--相当于类属性或者类方法,引用的时候必须加上static,被引用的也要有static
- 静态属性/方法在程序刚开始执行的时候就会加载进内存
- 静态方法调用方法/属性的时候 ,那么被调用的属性或者方法必须要加static
- 静态方法/静态属性好处:不需要去创建对象,直接通过类名. 占用内存
- 方法用的次数比较频繁 工具方法 加static
- 成员变量
- 方法
final--相当于常量,不能修改或者赋值,所以写入的时候尽量全大写,比如说网址,固定账号和固定密码可以用常量表示的变量
- 修饰成员变量(属性)-->常量
- 修饰方法-->不能被重写(继承,父类和子类出现了相同的方法,子类中的方法重写父类的方法)
- 最终类(不能被继承,被绝育了)