ps怎么做网站,加强思政部网站建设,如何用网站模板做网站,怎么用2级目录做网站一、权限修饰符
public, 缺省#xff0c; protected#xff0c;private
二、this和super关键字
this:表示当前对象
super:表示父类声明的成员
原则#xff1a;遵循就近原则和追根溯源原则。
三、Object类
java.lang.Object类是所有java类的超类#xff0c;即所有的J…一、权限修饰符
public, 缺省 protectedprivate
二、this和super关键字
this:表示当前对象
super:表示父类声明的成员
原则遵循就近原则和追根溯源原则。
三、Object类
java.lang.Object类是所有java类的超类即所有的Java类直接或间接的继承于此类。
int hashCode(): 返回对象的哈希值默认返回的是对象的内存地址转换而来的一个整数建议子类重写。函数作用为了提高哈希表性能Class getClass(): 返回对象的运行时类型。String toString(): 把对象转换为一个字符串默认此方法返回的是对象的运行时类型名称对象哈希值的十六进制。建议子类都重写该方法用于返回对象的属性信息。System.out.println()输出对象时默认会调用对象的toString方法。void finalize()垃圾回收期回收对象时会调用对象的此方法已过时。
四、对象数组
4.1 介绍和内存分析
数组的元素是对象即引用数据类型。在内存层面数组存放在jvm的栈中数组元素存放的是存放在堆中的对象的地址值。
Person[] ps new Person[3];
ps[0] new Person(张三, 18);
ps[1] new Person(李四, 19);
ps[2] new Person(王五, 20);for(Person p : ps){System.out.println(p);
}4.2 对象数组排序
public class ObjectArrayTest {public static void main(String[] args) {Student[] students new Student[5];students[0] new Student(xiaowang,80);students[1] new Student(xiaoming,90);students[2] new Student(xiaohua,100);students[3] new Student(huahua,79.5);students[4] new Student(yangyan,60);//冒泡排序for (int i 0; i students.length - 1; i) {//第一层冒泡多少轮for (int j 0; j students.length - 1 - i; j) {//第二层每轮比较多少次if(students[j].getGrade() students[j1].getGrade()){Student temp students[j];students[j] students[j1];students[j1] temp;}}}//遍历输出for (int i 0; i students.length; i) {System.out.println(students[i]);}}
}
五、多态
字面理解事物在不同的条件环境下呈现不同的状态。在java中表示一个类在不同的情况下有不同的特性。
常用使用情况 父类 father new 子类(); //编译时创建的是父类对象 子类.方法(); //运行时实际调用的是子类的方法
5.1 多态理解
例子当父类有多个方法是对同一个类的多个子类进行相同操作时可以将多个方法抽象到其父类。如果是增加对特定子类的方法违反了设计中的开闭原则。 开闭原则对修改关闭对扩展开放 在代码语法层面表现为方法中的形参列表类型声明为父类可以传递其子类对象实例进去。编译时子类可以作为父类进行传递运行时可以使用子类的特性和方法。
提供代码的扩展性降低了类与类之间的耦合度
5.2 多态的应用
赋值时的多态应用
public class ObjectArrayTest {public static void main(String[] args) {Pet[] pets new Pet[3];//多态在赋值上面的应用pets[0] new Cat();//猫pets[1] new Dog();//狗pets[2] new Pet();//宠物}
}方法返回值时的多态
public class ObjectArrayTest {public Pet getPet(){return new Cat();//返回宠物类或其子类都可以}
}传递参数的多态
public void feed(Pet pet){pet.eat();
}feed(new Dog());
feed(new Cat());
feed(new Pet());5.3 向上转型/向下转型
① 子类类型自动转换为其父类类型 向上转型父类 father new 子类();
Animal a new Cat(); //Cat - Animal② 父类类型转换为其子类类型需要强制转换 向下转型:
Animal a new Cat();//无法调用子类特有的方法
Cat c (Cat) a;//向下转型Animal - Cat
c.eat();类转换异常ClassCastException原先创建的类型不能转换为其他类型只能强制转换为其子类类型。转换类型前可以使用 instanceof来判断类型是否是需要转换的那个类型。
5.4 虚方法和实方法
虚方法可以被重写的方法没有staticfinal修饰。 实方法有staticfinal修饰时编译运行时都看左边。
查看具体调用哪个方法 ① 静态绑定查看父类的方法 ②动态分配核实子类是否重写父类的该方法
六、静态static
①静态无法访问非静态的方法和属性。 ②非静态可以访问静态的方法和属性 原因静态的方法和变量先于非静态的方法和变量存入内存。