专业建站分销商城,广告优化师是做什么的,佛山外贸建站公司,国内优秀网站案例包 同一个包里面不能有重复的类#xff0c;不同的包可以有相同的类#xff0c;包和包之间互不干涉。一个包下面有很多的类。
包的命名规则#xff1a; 只能包含数字#xff0c;字母#xff0c;下划线#xff0c;小圆点#xff0c;但不能用数字开头#xff0c;不能是关…包 同一个包里面不能有重复的类不同的包可以有相同的类包和包之间互不干涉。一个包下面有很多的类。
包的命名规则 只能包含数字字母下划线小圆点但不能用数字开头不能是关键字或保留字。
包的命名规范 com.公司名.项目名.业务模块名
访问修饰符 Java共有四种访问修饰符用于控制方法和属性成员变量的访问权限范围 1.公开级别public修饰对外公开。 2.受保护级别protected修饰对子类和同一个包中的类公开。 3.默认级别没有修饰符号向同一个包的类公开。 4.私有级别private修饰只有类本身可以访问不对外公开。 注意事项 只有默认的和public才能修饰类并且遵循上述访问权限的特点。
属性重写问题 1.属性没有重写之说属性的值看编译类型。
public class demo {public static void main(String[] args) {//生属性没有重写之说属性的值看编译类型Base base new Sub(); //向上转型System.out.println(base.count); //10Sub sub new Sub();System.out.println(sub.count); //20}
}class Base{int count 10;
}class Sub extends Base{int count 20;
} 2.instanceof 比较操作符用于判断对象的运行类型是否为XX类型或XX类型的子类型
public class demo01 {public static void main(String[] args) {BB bb new BB();System.out.println(bb instanceof BB); //trueSystem.out.println(bb instanceof AA); //true//aa是编译类型BB是运行类型AA aa new BB();System.out.println(aa instanceof AA); //trueSystem.out.println(aa instanceof BB); //trueObject object new Object();System.out.println(object instanceof AA); //falseString str hello;System.out.println(str instanceof Object); //true}
}class AA {
}class BB extends AA {
}
动态绑定机制 1.当调用对象方法时该方法会和该对象的运行类型绑定。 2.当调用对象属性时没有动态绑定机制哪里声明哪里使用。
多态数组 数组的定义类型是父类类型里面保存的实际元素类型是子类类型。 案例如下
public class Persion {private String name;private int age;public Persion(String name, int age) {this.name name;this.age age;}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;}public String say() {return name \t age;}}
public class Student extends Persion{private double score;public Student(String name, int age, double score) {super(name, age);this.score score;}public double getScore() {return score;}public void setScore(double score) {this.score score;}Overridepublic String say() {return super.say() \t score score;}public void study() {System.out.println(学生 getName() 在学习);}
}public class Teacher extends Persion{private double salary;public Teacher(String name, int age, double salary) {super(name, age);this.salary salary;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary salary;}//重写say方法Overridepublic String say(){return super.say() \t salary salary;}public void teach() {System.out.println(老师 getName() 在教书);}
}public class Test {public static void main(String[] args) {Persion[] persion new Persion[5];persion[0] new Persion(z, 1);persion[1] new Student(x, 2, 66);persion[2] new Student(c, 3, 77);persion[3] new Teacher(v, 4, 2500);persion[4] new Teacher(b, 5, 25000);for (int i 0; i persion.length; i) {System.out.println(persion[i].say());if (persion[i] instanceof Student) {Student student (Student) persion[i];student.study();} else if (persion[i] instanceof Teacher) {Teacher teacher (Teacher) persion[i];teacher.teach();}}}
}和 equals 是一个比较运算符
1.既可以判断基本类型也可以判断引用类型
2.如果是基本类型判断的是值是否相等
3.如果是引用类型判断的是地址是否相等即判断是不是同一个对象。 equals 是Object类中的方法
默认判断的是地址是否相等子类往往重写该方法用于判断内容是否相等
hashCode 返回该对象的哈希码值支持此方法是为了提高哈希表的性能。
1.提高具有哈希结构的容器的效率
2.两个引用如果指向的是同一个对象则哈希值肯定是一样的。
3.两个引用如果指向的是不同对象则哈希值是不一样的。
4.哈希值主要根据地址号来的不能完全将哈希值等价于地址。
toString 方法 基本介绍 默认返回全类名(包名 类名) 哈希值的十六进制。子类往往重写toString方法用于返回对象的属性信息。 重写 toString 方法打印对象或拼接对象时都会自动调用该对象的toString形式。 当直接输出一个对象时toString 方法会被默认的调用比如
System.out.println(monster); 就会默认调用 monster.toString()
finalize方法 当对象被回收时系统自动调用该对象的 finalize 方法。子类可以重写该方法做一些释放资源的操作。 什么时候被回收当某个对象没有任何引用时则 jvm 就认为这个对象是一个垃圾对象就会使用垃圾回收机制来销毁该对象在销毁该对象之前就会调用 finalize 方法。
Ending OK本篇文章就到此结束了非常感谢你能看到这里所以如果你觉得这篇文章对你有帮助的话请点一个大大的赞支持一下博主若你觉得有什么问题或疑问欢迎私信博主或在评论区指出~