一、成员变量初始值
java中所有的变量必须先声明,后赋值,才能使用
java中的成员变量在创建对象的时候都会执行一次初始化操作,给一个默认值
String是java提供的一个类
基本数据类型默认值都是0 包括boolean -> false
引用数据类型:null
null表示空,什么都没有, 占位
二、object
所有的东西都是对象
在java中所有的类都要继承object
object是一个类,所有类的根
我们写的类,即使不写继承,默认也会继承object
三、equals和==
== 判断左右两端的数据是否一致
equals:object类提供的一个方法,用来判断两个对象是否相等(???)
equals可以自己重写
字符串的判断一定要用equals
小练习: 模拟用户登录
public class Test2 {
public static void main(String[] args) {
String username = "admin";
String password = "123";
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名");
String uname = sc.nextLine();
System.out.println("请输入密码");
String upwd = sc.nextLine();
// 判断用户名和密码是否ok 直接用==不可以 因为判断的是两个对象
if (uname.equals(username) && upwd.equals(password)){
System.out.println("success");
}else {
System.out.println("fail");
}
}
}
四、toString
toString()对一个对象的字符串的表示形式
public class Dog {
String name;
String color;
public Dog(String name,String color) {
this.name = name;
this.color = color;
}
// 子类对父类提供的方法不满意,重写
public static void main(String[] args) {
Dog d = new Dog("xiaohua","white");
// 直接打印这个d
System.out.println(d);
// 默认打印对象,自动执行这个对象中的toString()方法 这两个输出是一样的
System.out.println(d.toString());
// 默认的toString() -> 包+类@内存地址
}
}
五、instanceof关键字
instanceof:判断XXX对象是否是XXX类型的
if(c instanceof cat)......
六、参数传递问题
局部变量放在栈里
对象放在堆里
值传递:把变量的值作为参数进行传递
引用传递:直接把变量作为参数进行传递
JAVA使用的是值传递
画内存图
Java面向对象编程丨老男孩IT教育_哔哩哔哩_bilibili
这一节要反复观看