城管希课堂之代码块和继承
代码块分为四种
1.局部代码块(想到方法)
书写位置:方法中
作用:限制作用域
2.构造代码块
书写位置:类中方法外
代码的执行顺序:
1.系统调用的
2.只要创建对象 就会调用
3.构造代码块 在 构造方法之前被调用
作用:当你有方法 需要每个对象都调用的时候
可以将这个方法 在构造代码块中调用(不常用)
3.静态代码块
使用关键字static 修饰的代码块
位置:类中方法外
调用顺序:
1.随着类的加载而加载
2.只加载一次
3.在构造代码块之前执行
应用场景:
加载驱动(U盘驱动)
4.同步代码块(多线程部分)
public class Demo01 {public static void main(String[] args) {//jubu();Person p1 = new Person();
// p1.name = "彭前";
// p1.sayHi();Person p2 = new Person("萧峰",10);
// p2.sayHi();}private static void jubu() {{//局部代码块可以 限制变量的作用域 int num = 10; }//System.out.println(num);}
}
// 暴力调试法
// 小黄鸭调试法(逻辑调试)
class Person{String name;int age;//无参和有参的构造方法public Person(){System.out.println("我是无参的构造方法");}public Person(String name,int age){this.name = name;this.age = age;System.out.println("我是有参的构造方法");}//介绍自己方法public void sayHi(){System.out.println(name+".."+age);}//吃public void eat(){System.out.println("人--吃饭");}//构造代码块{ this.eat();System.out.println("我是构造代码块");}//静态代码块static {System.out.println("我是 静态代码块");}
}
继承!
好处:
1.减少代码量(代码的复用性)
2.提高工作效率
3.增强类与类之间的关系(让类和类之间的关系更紧密)
弊端:
1.调高内聚 希望一个类中 方法与方法之间联系加强
2.降低耦合 希望类与类之间 减少联系
java中只允许单继承(类与类)(可以通过接口实现多继承)
java中还允许多层继承(继承链)
* 当你想只使用共有方法和属性 使用哪个类的对象?* 一般选择 使用继承链 最顶端的类* 当你想使用特有方法和属性 使用哪个类的对象?* 一般选择 使用继承链 最末端的类* * 如果一个类没有写继承 那么这个类 默认继承 Object类(基类)
public static void main(String[] args) {DemoA a = new DemoA();// 当我直接打印对象时候 // 相当于调用的 Object类中 toString方法// 思考 toString方法有啥用System.out.println(a);}
* 继承中的 构造方法* 注意:构造方法是不能继承的* * 当创建子类对象的时候 为了保证继承的完整性* (不管你在 创建子类对象的时候 使用的是 无参还有有参构造)* 系统会默认帮你调用 父类中的 无参构造方法
* super 和 this* super 在子类中代表是 父类的对象* this 在子类中可以调用子类的属性 和 方法* (当子类中没有这个属性 或方法的时候 就去父类中寻找 找到就用 没找到就报错)
* 关键字 final(绝育)* 1.修饰方法 方法不能被重写* 2.修饰类 类不能被继承* 3.修饰变量 变量不能修改* final 修饰引用数据类型 * 不能进行重新指向(地址不能修改)* 对象中的属性不会影响修改
* 方法重载(Overload)(在一个类中进行) * 方法重写(Override)(前提:至少两个类中 并且还要有继承关系) * 方法的重写 作用:相当于 对 父类的该方法 进行升级 * 重写:跟父类的方法 完全一致
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
