对象和封装
成员变量默认值
数据类型 | 默认值 | |
---|---|---|
基本类型 | 整数(byte,short,int,long) | 0 |
数据类型 | 默认值 | |
浮点数(float,double) | 0.0 | |
字符(char) | ‘\u0000’ | |
布尔(boolean) | false | |
引用类型 | 数组,类,接口 | null |
对象在内存图
成员变量与局部变量的区别
- 在类中的位置不同 重点
-
- 成员变量:类中,方法外
-
- 局部变量:方法中或者方法声明上(形式参数)
- 作用范围不一样 重点
-
- 成员变量:类中
-
- 局部变量:方法中
- 初始化值的不同 重点
- -成员变量:有默认值
-
- 局部变量:没有默认值。必须先定义,赋值,最后使用
- 在内存中的位置不同 了解 成员变量:堆内存 局部变量:栈内存
- 生命周期不同 了解
-
- 成员变量:随着对象的创建而存在,随着对象的消失而消失
-
- 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
面向对象三大特性:封装,继承,多态
封装
封装就是将一些细节信息隐藏起来,对于外界不可见。
封装性在Java当中的体现:
- 方法就是一种封装
- 关键字private也是一种封装
一个标准的类
public class Student {
//私有的成员变量
private String name; // 姓名
private int age; // 年龄
//空参构造函数(不创建默认系统创建,在new的时候自动调用)
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
//set,get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
常用API
// :System.in代表从键盘进行输入
Scanner sc = new Scanner(System.in);
sc.nextInt();int类型
sc.next();String类型(电脑输入其实都是String类型)
//随机数,左闭右边开区间[);
Random r = new Random();
r.nextInt(10)+1;//[1,10]
/*
对于ArrayList来说,有一个尖括号<E>代表泛型。
泛型:也就是装在集合当中的所有元素,全都是统一的什么类型。
注意:泛型只能是引用类型,不能是基本类型。
如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”。
基本类型 包装类(引用类型,包装类都位于java.lang包下)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
从JDK 1.5+开始,支持自动装箱、自动拆箱。
自动装箱:基本类型 --> 包装类型
自动拆箱:包装类型 --> 基本类型
*/
ArrayList<String> list = new ArrayList<>();
list.add(String);
list.get(index);
list.remove(index);
list.size();
//Arrays数组工具类
Arrays.sort();//排序
Arrays.toString();//转成字符串
//Math
Math.abs();//取绝对值
Math.ceil();//向上取整
Math.floor()//向下取整
Math.round();//四舍五入
//String的值是不可以改变的,地址池有优化机制
str.length();//字符串长度
str.equals(Object obj)://比较是否值相等
str.equalsIgnoreCase()://不区分大小写比较
str.concat();//连接字符串
str.charAt (index);//根据下标找值
str.inexof();//返回最近相等值的下标
str.substring();//截取字串
str.toCharArray () ;//将此字符串转换为新的字符数组。
srr.replace();//替换