![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面向对象
别拦着我,我要学习
这个作者很懒,什么都没留下…
展开
-
单例模式-懒汉式安全问题解决
方式一:效率较差public class BankTest {}class Bank{ private Bank(){ } private static Bank instance=null; public static Bank getInstance(){ synchronized (Bank.class) { if (instance == null) { instance = new Ban原创 2020-10-15 23:51:51 · 130 阅读 · 0 评论 -
类的内部成员:内部类
内部类Java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类内部类的分类:成员内部类(静态、非静态)VS 局部内部类(方法内,代码块内、构造器内)成员内部类一方面作为外部类的而成员:调用外部类的结构可以被static修饰可以被四种不同的权限修饰符修饰另一个方面,作为一个类:类内可以定义属性,方法,构造器等可以被final修饰,表示此类不能被继承。言外之意,不使用final就可以被继承可以被abstract修饰关注如下三个问题4.1 如何实例化成员原创 2020-10-10 19:47:39 · 252 阅读 · 0 评论 -
接口以及jdk8中接口的新特性
接口的使用接口使用interfance来定义Java中,接口和类是并列的两个结构如何定义接口,定义接口中的成员3.1 JDK7及以前:只能定义全局常量:public static final,但是可以省略抽象方法:public abstract3.2 JDK8:除了定义全局常量和抽象方法之外,还可以定义静态方法,默认方法。接口中不能定义构造器,不能实例化Java开发中,接口通过类去实现(implements)的方式来使用如果实现类覆盖了接口中所有的抽象方法,则此实原创 2020-10-10 17:52:07 · 200 阅读 · 0 评论 -
抽象类与抽象方法
abstract关键字使用说明:abstract:抽象的abstract可以用来修饰的结构:类、方法abstract修饰类:抽象类此类不能实例化抽象类中一定有构造器,便于子类对象实例化时调用(涉及:子类对象实例化的全过程)开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作abstract修饰方法:抽象方法抽象方法只有方法的声明,没有方法体包含抽象方法的类一定是一个抽象类,反之,抽象类中可以没有抽象方法若子类重写了父类中的所有抽象方法后,此子类方可实例化若子类没原创 2020-10-09 13:50:21 · 161 阅读 · 0 评论 -
关键字final
final:最终的final可以用来修饰的结构:类、方法、变量final 用来修饰一个类:此类不能被其他类所继承比如:String、System类、StringBuffer类final 用来修饰方法:表明此方法不能被重写比如Object类中的getClass();final 用来修饰一个变量:此时的“变量”就称为一个常量4.1 final修饰属性:可以考虑赋值的位置有:显式初始化、代码块中初始化、构造器中初始化4.2 final修饰局部变量尤其是使用final修饰形参时,表明此形参是一个原创 2020-10-09 00:40:00 · 38 阅读 · 0 评论 -
类的成员之四-代码块(或初始化块)
代码块的作用:用来初始化类、对象代码块如果有修饰的话只能使用static分类:静态代码块vs非静态代码块静态代码块内部可以有输出语句随着类的加载而执行,而且只执行一次作用:初始化当前类的属性如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行静态代码块的执行优先于非静态代码块的执行只能调用静态的属性和静态的方法,不能调用非静态的结构非静态代码块内部可以有输出语句随着对象的创建而执行每创建一个对象就执行一次非静态代码块作用:在创建对象时,对对象的属性等进行初始化.原创 2020-10-08 12:50:04 · 96 阅读 · 0 评论 -
单例设计模式(Singleton)
单例设计模式所谓单例设计模式,就是采用一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。如何实现?饿汉式vs懒汉式饿汉式:public calss SingLetonTest1{ public static void main(){ Bank bank1=Bank.getInstance(); Bank bank2=Bank.getInstance(); System.out.println(bank1==bank2);//结果为true,用的同一个对象 }}原创 2020-10-08 11:35:06 · 79 阅读 · 0 评论 -
包装类(Wrapper)
包装类的使用包装类的基本说明:针对八种基本数据类型定义相应的引用类型:包装类(封装类)有了类的特点,就可以调用类中的方法,Java才是真正的面向对象基本数据类型包装类byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublebooleanBooleancharCharacterByte、Short、Integer、Long、Float、Double包装类的父类原创 2020-10-07 20:05:37 · 216 阅读 · 0 评论 -
static关键字使用及说明
static关键字的使用:static:静态的static可以用来修饰:属性、方法、代码块、内部类使用static修饰属性:静态变量(或类变量)3.1属性,按是否使用static修饰,又分为静态属性以及非静态属性(实例变量)实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性,当修改其中一个对象中的非静态属性时,不会导致其他对象中同样的属性值的修改静态变量:我们创建了类的多个对象,多个对象共享同一个静态变量。当通过某一个对象修改静态变量时,会导致其他对象调用此静态变量时,原创 2020-10-07 20:04:21 · 111 阅读 · 0 评论 -
Java中的JUnit单元测试
步骤:选中当前工程-右键选择:build path - add libraries - JUnit 4 -下一步创建java类,进行单元测试此时的Java类要求:① 此类是public的 ② 此类提供公共的无参的构造器此类中声明单元测试方法此时的单元测试方法,方法的权限是public,没有返回值,没有形参此单元测试方法上需要声明注释:@Test声明好单元测试方法以后,就可以在方法体内测试相关的代码写完代码以后,左键双击单元测试方法,右键run as -JUnit Test说明:如果原创 2020-10-06 22:54:20 · 182 阅读 · 0 评论 -
Object类的使用2
Object类中toString()的使用:当我们输出一个对象的引用时,实际上就是调用当前对象的toString()Object类中toString()的定义: public String toString(){ return getClass().getName()+"@"+Integer.toHexString(hashCode()) }像String、Date、File、包装类等都重写了Object类中toString()方法使得在调用对象的toString()时,返回“实体内原创 2020-10-06 20:52:44 · 37 阅读 · 0 评论 -
Object类的使用1
java.lang.Object类1.Object类是所有java类的根父类2.如果在类中没有显示的使用extends指定其父类 ,则默认父类为java.lang.Object类3.Object类中的功能(属性、方法)就具有通用性属性:无方法:equals() / toString() / getClass() / hashCode() / clone() / finalize() / wait() / notify() / notifyAll()4.Object类只声明了一个空参的构造器eq原创 2020-10-06 19:57:10 · 74 阅读 · 0 评论 -
多态性的部分练习
多态练习:调用方法与属性:1.若子类重写了父类方法,就意味着子类里定义的方法彻底覆盖了父类中同名方法系统将不可能把父类里的方法转移到子类中。编译看左,运行看右。2.对于实例变量则不存在这样的现象,即使子类里定义了与父类完全相同的实例变量,这个实例变量依然不可能覆盖父类中定义的实例变量。编译运行都看左边。class Base{ int count = 10; public void display(){ System.out.println(this.count); }}class Su原创 2020-10-06 00:27:08 · 90 阅读 · 0 评论