目录
成员变量初始值
java中的变量必须先声明,后赋值才能使用。 java中的成员变量,在创建对象的时候,都会执行一次初始化操作,都会给一个默认值。
public class Test {
public static void main(String[] args) {
// int n;
// System.out.println(n);//会报错:可能尚未初始化变量n
}
}
byte b;//byte=0
short s;//short=0
int i;//int=0
long l;//long=0
float f;//float=0.0
double d;//double=0.0
char c;//char= //注意这里是有一个空格的
//System.out.println("char="+(int)p.c);//强转成int型-->0
boolean bool;//boolean=false
String str;// String是Java提供的一个类//String=null
Child child;//自己写的类Child的默认值//Child=null
Object
万事万物皆为对象 所有的东西都是对象 在Java中所有的类都要继承object object是一个类,所有类的根 我们的写的类即使不写继承关系,那么默认也会继承object 【创建一个Person class但是里面什么都不写】 【Student会继承Person类同时也会继承object类,因为object是一个类,所有类的根】
public class Student extends Person{
public static void main(String[] args) {
Student s=new Student();
//s.//默认也会继承object
}
}
equals和==
equals和== ==判断左右两端的数据是否一致 equals:object类提供的一个方法,用来判断两个对象是否相等 【这里的相等并非一般情况的相等 两只猫的颜色一样可以称为相等 两只猫的中重量相等也可以成为相等】 equals可以自己重写 字符串的判断必须使用equals 可以帮我们判断内容分是否相同
public class Cat {
String name;
String color;
public Cat(String name, String color) {
this.name = name;
this.color = color;
public static void main(String[] args) {
//创建两个对象,他们的内存地址是不一样的
Cat c1 = new Cat("球球", "黑白相间");
Cat c2 = new Cat("球球", "黑白相间");
System.out.println(c1 == c2);
//false 双等默认判断的是两个对象的内存地址是否一致,一般用在基本数据类型上,判断两个数是否相等
System.out.println(c1.equals(c2));
//false object提供的equals方和==实际上是没有区别的
}
}
public class Cat {
String name;
String color;
public Cat(String name, String color) {
this.name = name;
this.color = color;
}
//如果父类的满足不了就可以在子类中自己写equals方法
public boolean equals(Cat c) {
//单纯的去写判断的逻辑
if (this.color == c.color) {
return true;
} else {
return false;
}
}
public static void main(String[] args) {
//创建两个对象,他们的内存地址是不一样的
Cat c1 = new Cat("球球", "黑白相间");
Cat c2 = new Cat("球球", "黑白相间");
System.out.println(c1 == c2);
//false 双等默认判断的是两个对象的内存地址是否一致,一般用在基本数据类型上,判断两个数是否相等
System.out.println(c1.equals(c2));
//false object提供的equals方和==实际上是没有区别的
//写了之后就会返回ture
}
}
注意: 字符串是例外的!!!这里不会报错
public class Cat {
public static void main(String[] args) {
//注:字符串是例外的
//str1 、str2使用的是同一个内存地址
String str1 = "小鲁";
String str2 = "小鲁";//并没有单独的占内存空间
System.out.println(str1 == str2);//ture
System.out.println(str1.equals(str2));//ture
}
}
注意区别:这个时候新建了一个对象,虽然最初的内存地址是一样的但是new出来的str3和str4是不一样的是一个新的对象然后所以此时的内存地址是不一样的
public class Cat {
public static void main(String[] args) {
String str3 = new String("鲁正婷");
String str4 = new String("鲁正婷");
System.out.println(str3 == str4);//false 判断的是内存地址是否一致
System.out.println(str3.equals(str4));//true 判断两个字符串的内容是否一直
//字符串的判断必须使用equals 可以帮我们判断内容分是否相同
}
}
一个关于字符串的小练习:
!!!注意equals和==的区别!!!
//小练习模拟用户登录
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
String Username = "admin";
String Password = "12