JAVA 代码块 继承 final

来源:互联网 发布:宋代权知开封府事 编辑:程序博客网 时间:2024/06/06 07:10

一 代码块
代码块分四类
1 局部代码块
2 静态代码块
3构造代码块
4同步代码块

(1)局部代码块 :一看到局部代码块 我们首先 想到的是 局部变量 他的位置跟局部变量一样他的位置也在方法中
他的作用限定了局部变量的生命周期

      //  局部代码块        //{            //int number = 10;            //System.out.println(number);        //}        //System.out.println(number);number 释放,出栈

2 构造代码块 看到构造 代码块 我们首先想到的时构造方法 他的位置在类中 方法外
作用:如果每个对象都有相同的方法区执行 可以再代码块中调用但是我们在开发中几乎没有这样的情况
调用顺序:在你创建对象时,如果你有构造代码块,系统会先给你调用构造代码块 之后在调用构造方法

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("hello");        }    //构造代码块    {        System.out.println("我是构造代码块");    }

3 静态代码块(使用static来修饰)
位置:在类中,方法外
特点:他只加载一次,并且随着类的加载而加载
应用场景(java):jdbc数据库的连接

public class Demo01 {    static {        System.out.println("我是Demo01的代码块");    }

二 继承(关键字 extends)
什么叫继承?
继承是连接了类与类的代码之间的关系
也可以理解成父与子的关系

继承的特点:
1:他减少了重复的代码
2:减少了你的工作量
3 :可以把类中相同的代码抽取出来,写成一个父类

继承他有特点就有弊端
弊端:高内聚 低耦合

也不是父类所有东西子类都能继承的
如构造方法

(注意事项:类里面不能定义类)继承小举例public class Demo02 {    public static void main(String[] args) {        Cat cat = new Cat();        cat. color = "黑色";        cat. leg = 4;        cat.sayhi();    }}//创建写一个动物类class Aanima{    String color;    int leg;    //String name;    public void sayhi() {        System.out.println(color+"....."+leg);    }}//   类里面不能定义类 extends继承class Cat extends Aanima{}class Dog extends Aanima{}

如果我们遇到继承时 父类 和 子类有相同名字的成员变量时该怎么办呢
这时super属性就出来了

super 在类中代表的是父类的属性

public class Demo07 {    public static void main(String[] args) {        GlassCup g  = new GlassCup();        g.print();    }}class Cup{    public void print() {        System.out.println("我是杯子");    }}class GlassCup extends Cup{    public void print() {        //Override和Overlood有什么区别        //Override重写        //Overrlood重载        //重写的应用场景        //当子类的方法 相对 父类的方法有了升级        //ios 7 Sirl 只能说中文        //ios 8 Sirl可以说英文 也 可以 说英文        //方法的重载是方法名一样 参数不一样        //当父类与子类的方法一致是 ,叫方法的重写        //当方法名相同时        //super点方法可以调用 父类的方法        super.print();        System.out.println("我是玻璃杯");    }}class Ios7{    public void sirl() {        System.out.println("我能说英文");    }}class Ios8 extends Ios7{    //注解 在Override 标示着这个方法是重写父类的方法public void sirl() {    //这里调不调用父类方法 要根据实际开发情况    super.sirl();    System.out.println("我能说中文");

三 final 关键字
1 final修饰 类是 不能被继承
2 final修饰方法是 不能被重写
3 final修饰变量是 不能被更改
final修饰的变量相当于常量,常量是不能修改的量
加static调用方便
因为他修饰相当于常量 加了静态 能共享
用final命名时 有一个命名规则 名词全部大写 多单词用下化线

 public static final double MAX_VALUE= 3.14;    public void sayhi() {        System.out.println(MAX_VALUE);    }}
原创粉丝点击