关于java:限时白嫖腾讯内部员工培训Java资料网友大厂就是不一样

68次阅读

共计 4709 个字符,预计需要花费 12 分钟才能阅读完成。

注释:

上一篇是《java 拜访权限和 javaObject》,敌人们了解得怎么样?这篇分享的是《Java 中 final 关键字的作用和 Java 抽象类》。

接下来开始明天的分享

Java 中 final 关键字的作用

  • final 修饰字段, 在定义时必须显示初始化, 不能被批改, 个别与 static 同时应用, 所有字母都大写, 称为 final 常量
  • final 润饰办法, 不能被笼罩(重写)
  • final 润饰局部变量, 一旦初始化就不能再批改, 留神 final 润饰援用类型变量, 是指这个变量不能再指向 其余对象 , 能够批改它的字段值
  • final 润饰办法形参, 在办法体中不能批改 final 参数的值
package com.bjpowernode.chapter01.demo04.p1;
/**
 * 1) final 润饰类, 示意这个类是最终类, 不能被继承
 *         如 System 类 /String 类就是应用 final 润饰的
 *         当定义的类不想被别的类继承时, 就能够应用 final 润饰
 * @author Administrator
 *
 */
public final class Father {}
package com.bjpowernode.chapter01.demo04.p2;
/**
 * 2) final 修饰字段
 *         final 字段必须初始化, 要么在定义时赋初值, 要么在构造方法中赋初值
 *         final 字段不能从新赋值
 *         个别状况下,final 修饰字段时, 同时应用 static 一起润饰, 称为 final 常量 , 所有字母都大写
 * @author Administrator
 *
 */
public class Father2 {
    int xx;
    int yy = 20;     
    final int oo = 456;          //final 字段在定义时显示初始化
    final int zz;                //final 字段在构造方法中显示初始化
    final static double PI = 3.14;        //final 常量     
    public Father2() {zz = 121;}    
    public void mm() {
        xx = 123;
        yy = 202;
//        zz = 789;  //he final field Father2.zz cannot be assigned
//        oo = 369;    //final 字段不能被从新赋值
    }
}
package com.bjpowernode.chapter01.demo04.p3;
/**
 * 3) final 润饰办法, 不 能被子类重写(笼罩)
 *         留神: 子类能够继承到 final 办法, 只是不能重写
 * @author Administrator
 *
 */
public class Father3 {public void m1(int xx) {System.out.println("父类的实例办法, 能够子类笼罩");
    }    
    public final void m2(int x, int y) {System.out.println("应用 final 润饰的办法, 不能被子类重写");
    }
}
package com.bjpowernode.chapter01.demo04.p4;
import com.bjpowernode.chapter01.demo03.Book;
/**
 * 4) final 润饰局部变量
 *         一旦初始化实现, 就不能再从新赋值
 * @author Administrator
 *
 */
public class Test {public static void main(String[] args) {
        // 定义局部变量
        int x ;
        x = 10;
        int y = 20; 
        //final 润饰局部变量
        final int z;
        z = 30;
        final int t = 40;        
        // 能够给局部变量从新赋值
        x = 101;
        y = 202;
//        z = 303;         // 不能给 final 局部变量从新赋值        
        //final 润饰援用类型变量
        final Book  book1 = new Book
        //final 关键字润饰的是 book1 变量, 不能给 book1 变量从新赋值, 能够对象的字段值
//        book1 = new Book
        book1.name =         
    } 
}
package com.bjpowernode.chapter01.demo04.p5;
/**
 * 5) final 润饰办法形参
 *         final 形参不能被赋值
 * @author Administrator
 *
 */
public class Test {public static void main(String[] args) {m1(10, 20);     // 在调用办法时, 给 final 形参初始化
    }
    public static void m1(int x, final int y) {
        x = 101;
//        y = 202;        //final 形参不能被赋值
    }
}

Java 抽象类

当一个类的某个操作没法具体实现时, 这个操作能够定义为形象办法。

形象办法应用 abstract 润饰的办法, 只有办法的申明局部, 没有办法体。

package com.wkcto.chapter01.abstracttest.demo01;

/**

* 定义立体图形 类

* 该类有对立体图形求面积, 求周长的操作

*

* 1) 当一个类的某个操作没法具体实现时, 这个操作能够定义为形象办法

* 2) 应用 abstract 润饰的办法为形象办法, 只有办法的申明, 没有办法体

* 3) 含有形象办法的类必须定义为抽象类

* @author

*

*/

public abstract class Graphics2d {

// 定义形象办法, 求面积

public abstract double getArea();

// 定义形象办法, 求周长

public abstract double getPerimeter();}
package com.wkcto.chapter01.abstracttest.demo01;

/**

* 定义矩形类

*

* 1) 子类继承了抽象类, 须要在子类中重写抽象类的形象办法

* @author

*

*/

public class Rectangle extends Graphics2d {

int width;

int height;

public Rectangle(int width, int height) {super();

this.width = width;

this.height = height;

}

@Override

public double getArea() {return width*height;}

@Override

public double getPerimeter() {return 2*(width+height);

}

}
package com.wkcto.chapter01.abstracttest.demo01;

/**

* 测试类,

* 定义一个办法, 能够显示任意立体图形的面积与周长

* @author

*

*/

public class Test {public static void main(String[] args) {

// 创立矩形 对象

Rectangle rect = new Rectangle(10, 5);

// 办法的形参 graphics2d 是一个父类援用, 在调用办法时, 能够传递子类对象

showInfo(rect);

// 创立圆形对象

Circle c1 = new Circle(10);

showInfo(c1);

}

//    定义一个办法, 能够显示任意立体图形的面积与周长

public static void showInfo(Graphics2d graphics2d) {System.out.println("立体图形的信息 ------------------");

System.out.println("面积:" + graphics2d.getArea());

System.out.println("周长:" + graphics2d.getPerimeter());

}

}
package com.wkcto.chapter01.abstracttest.demo01;

/**

* 定义三角形类

* 如果子类继承了抽象类, 没有重写所有的形象办法, 那么子类也须要定义为抽象类

* @author

*

*/

public abstract class Triangle extends Graphics2d {

int a;

int b;

int c;

@Override

public double getPerimeter() {return a+b+c;}

}
package com.wkcto.chapter01.abstracttest.demo01;

/**

* 测试抽象类的特点:

* 1) 只有应用 abtract 润饰的类就是抽象类

* 2) 含有形象办法的类必须定义 为抽象类, 然而, 抽象类中不肯定含有形象办法

* 有时, 对现有的类进一步形象造成更高层级的类(更形象的类), 如食物类, 动物类, 它们是没法实例化, 这种状况下, 能够定义为抽象类

* 3) 抽象类是一种援用数据类型, 能够定义变量, 然而抽象类不能实例化对象,

* 抽象类定义援用能够赋值子类对象

* 4) 抽象类必定含有构造方法, 子类创建对象时调用子类构造方法, 子类构造方法体执行前会先执行父类的构造方法

* 5) abstract 与 final 不能同时应用

* @author

*

*/

public class Test02 {public static void main(String[] args) {

// 应用抽象类定义一个变量

Graphics2d graphics2d;

//    graphics2d = new Graphics2d();;//Cannot instantiate the type Graphics2d

Rectangle rectangle = new Rectangle(10, 5);

// 抽象类援用能够赋值子类对象

graphics2d = rectangle;

graphics2d = new Rectangle(5, 2);

}

}

练习: 客人喂养宠物, 宠物就卖萌

package com.wkcto.chapter01.abstracttest.demo02;

/**

* 宠物类

* 卖萌

* @author

*

*/

public abstract class Pet {

// 卖萌

public abstract void sellMeng() ;}
package com.wkcto.chapter01.abstracttest.demo02;

/**

* 小狗是宠物

* @author

*

*/

public class Dog extends Pet {

@Override

public void sellMeng() {System.out.println("汪汪汪~~~~");

}

}
package com.wkcto.chapter01.abstracttest.demo02;

/**

* 主人类

* @author

*

*/

public class Master {

// 喂宠物

public void feed(Pet  pet) {

// 宠物卖萌

pet.sellMeng();}

}
package com.wkcto.chapter01.abstracttest.demo02;

/**

* 测试客人喂宠物, 宠物就卖萌

* @author

*

*/

public class Test {public static void main(String[] args) {Master xiaoxi  = new Master();

Dog dog = new Dog();

xiaoxi.feed(dog);

Cat cat = new Cat();

xiaoxi.feed(cat);

}

}

大家能够本人练习下:

愤恨的小鸟, 红火 (红颜色的鸟) 能够失常航行 , 蓝冰 (蓝色彩的鸟) 能够一个变三个, 黄蜂 (黄色彩的鸟) 能够减速航行, 定义一个弹弓类, 有一个弹射的办法 , 能够把鸟给射出去, 鸟在飞。

  • 下面就是《Java 中 final 关键字的作用和 Java 抽象类》。的分享,接下来为大家梳理《Java 接口和 Java 类与类之间的关系》。
  • 也欢送大家交换探讨,该文章若有不正确的中央,心愿大家多多包涵。
  • 你们的反对就是我最大的能源,如果对大家有帮忙给个赞哦~~~

正文完
 0