JAVA笔记5__构造块、静态块/单例设计模式/继承/final关键字/super关键字
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JAVA笔记5__构造块、静态块/单例设计模式/继承/final关键字/super关键字,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3120字,纯文字阅读大概需要5分钟。
内容图文
public class Main { { // 构造块(在构造对象时调用,先于构造方法执行) System.out.println("我是构造块!"); } static{ //静态块(在类加载时执行,且只执行一次【在构造块前执行】eg:数据库连接) System.out.println("我是静态块!"); } public Main(){ System.out.println("我是构造方法!"); } publicstaticvoid main(String[] args) { Main m1 = new Main(); Main m2 = new Main(); } }
/** * 单例设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点 * 1.构造方法私有化 * 2.声明一个本类对象 * 3.给外部提供一个静态方法获取对象实例 * 两种实现方式:饿汉式、懒汉式 * 应用场合:工具类(例数据库) */ public class Main { public static void main(String[] args) { Singleton1 s1 = Singleton1.getInstance(); s1.print(); Singleton1 s2 = Singleton1.getInstance(); Singleton1 s3 = Singleton1.getInstance(); System.out.println(s1==s2); //输出true,s1,s2,s3都指向同一个对象 Singleton2 t1 = Singleton2.getInstance(); t1.print(); Singleton2 t2 = Singleton2.getInstance(); System.out.println(t1==t2); //输出true,t1,t2指向同一个对象 } } /** * 把该类设计成单例设计模式 * 饿汉式 */class Singleton1{ privatestatic Singleton1 s = new Singleton1(); //饿汉,先new一个对象private Singleton1(){} publicvoid print(){ System.out.println("饿汉式单例设计模式!"); } publicstatic Singleton1 getInstance(){ return s; } } /** * 把该类设计成单例设计模式 * 懒汉式【在多线程访问时会有线程安全问题】 */class Singleton2{ privatestatic Singleton2 s = null; //懒汉,先不new,调用时再newprivate Singleton2(){} publicvoid print(){ System.out.println("懒汉式单例设计模式!"); } publicstatic Singleton2 getInstance(){ if(s==null){ s = new Singleton2(); } return s; } }
/** * 继承 * 1.Java只能实现单继承,也就是一个类只能有一个直接父类 * 2.继承只能继承非私有的属性和方法(public,protected,default) * 3.构造方法不能被继承 */ public class Main { public static void main(String[] args) { HomeDog d2 = new HomeDog("hels"); //父类的构造方法先执行(且只能执行父类的默认构造方法【无参】,除非显式调用) d2.desc(); } } class Dog{ String name; public Dog(){ System.out.println("A dog born."); } public Dog(String name){ System.out.println("A dog:"+name+" is born."); } publicvoid desc(){ System.out.println("I‘m a dog."); } } class HomeDog extends Dog{ public HomeDog(String name){ super(name); //表示父类的引用【必须放在第一句】 System.out.println("A HomeDog born."); } /** * 方法的重写 * 1.发生方法重写的两个方法返回值、方法名、参数列表必须完全一致(子类重写父类的方法) * 2.子类抛出的异常不能超过父类相应方法抛出的异常 * 3.子类方法的访问级别不能低于父类相应方法的访问级别(例:父protected 子public) */publicvoid desc(){ System.out.println("我是重写过后的方法!"); } } class WildDog extends Dog{ public WildDog(){ System.out.println("A WildDog born."); } }
/** * super关键字可以完成的操作: * 1.调用父类中的属性 * 2.调用父类中的方法 * 3.调用父类中的构造方法 */ public class Main { public static void main(String[] args) { BlackDuck d1 = new BlackDuck(); d1.desc(); } } class Duck{ protected String name; protectedint price = 55; publicvoid count(){ System.out.println("Duck price is "+price); } } class BlackDuck extends Duck{ publicvoid desc(){ System.out.println("I‘m a BlackDuck,My price is "+super.name); super.count(); } }
/** * final关键字可以完成的操作: * 1.声明一个类(最终类,不能被继承) * 2.声明一个方法(这个方法不能再被子类重写) * 3.声明一个常量(1.直接赋值 2.在构造方法中赋值) */ public class Main { public static void main(String[] args) { Girl g1 = new Girl(30); g1.desc(); } } finalclass Girl{ final String name = "fish7"; finalint age; public Girl(int age){ this.age = age; } publicfinalvoid desc(){ System.out.println("I‘m "+name+", My age is "+age); } }
原文:http://www.cnblogs.com/fish7/p/4141212.html
内容总结
以上是互联网集市为您收集整理的JAVA笔记5__构造块、静态块/单例设计模式/继承/final关键字/super关键字全部内容,希望文章能够帮你解决JAVA笔记5__构造块、静态块/单例设计模式/继承/final关键字/super关键字所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。