A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wei19910428 中级黑马   /  2016-5-25 23:17  /  559 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


三大特性:
  • 详细说明面向对象三个特点。
封装:
---概念:隐藏对象的属性和细节,仅对外提供公共的访问接口。
---好处:将变化隔离;方便使用;提高了代码的复用性和重现性。
---封装原则:将不需要对外提供的内容都隐藏起来,仅提供公共的方法。
继承:
---概念:指这样一种能力,可以使用现有类的所有功能,且在无需重新编写原来的类情况下,对这些功能进行拓展。继承的类成为“子类”或“派生类”,被继承的类,成为“父类”或“基类”。
---好处:提高了代码的复用性;让类与类之间产生了关系,且是多态的前提。
---特点:java支持多重继承,但只支持单继承,即是说一个子类只允许有一个父类。但Java通过多实现的方法弥补了单继承所带来的缺陷。
多态:
---概念:父类引用或接口,指向了自己的子类对象。
---好处:提高了程序的拓展性。
---弊端:虽然提高了拓展性,但只能只用父类中已有的方法,而不能使用子类特有的方法。
---前提:必须要有类的继承或接口的实现关系。通常会有覆盖操作。
封装:★★★★★
单例设计模式:★★★★★(必问的)
  • 编写一个延迟加载的单例设计模式。(3)
/*
饿汉式
  • 因为要保证只有一份对象,对构造函数私有。
  • 定一个公有的返回对象的方法,同时因为不能创建对象,
因此方法使用静态方法。
class Single1()
{
        private Single1(){}
        Single1 s = new Single1();
        public Single1 getInstance()
{
return s;
}
}
懒汉式
只有当对外提供的方法被访问时,才进行初始化。
目的:保证对象在内存中的唯一性。
  • 禁止访问构造函数;
  • 在有需要的情况下,才创建对象;
  • 对外提供访问接口。
注意:
  • 因为不能创建对象,所以对外提供的访问函数,只能是静态的。
  • 静态函数只能访问静态属性,因此创建的对象也必须是静态的。
  • 因为s是类类型变量,因此s也最好是私有化。
  • 懒汉式牵涉到多线程安全问题,注意进行2次判断(第二次上锁)。
*/
class Single2
{
        private Single2(){}
        private static Single2 s=null;
        public Single2 getInstance()
{
        if(s==null)
{
Synchronized(Single2.Class) //上锁,且双重判断
{
if(s==null)
                        s=new Single2();
}
}
        return s;
}
}
5、单例设计模式为什么要这样写?延迟加载的单例属于哪种设计模式?
6、单例和枚举的区别(2
        a) 枚举单例简洁。public   enum   EasySingleton { INSTANCE ; }
        b) 枚举单例可以解决序列化readObject()带来的创建多个对象的问题
private   Object readResolve (){ return   INSTANCE ;}
        c) 枚举单例是线程安全的
7,单例的设计模式作用,懒汉式和饿汉式的区别;
8,银行系统哪里用到了单例,问银行卡上有账号是不是单例;
继承★★★★★ (4h)
1有这样三个类,Person,Student.GoodStudent。其中Student继承了Person,GoodStudent继承了Student,三个类中只有默认的构造函数,用什么样的方法证明在创建Student类的对象的时候是否调用了Person的构造函数,在创建GoodStudent类的对象的时候是否调用了Student构造函数?如果在创建Student对象的时候没有调用Person的构造函数,那么采用什么样的手段可以调用父类的构造函数?
2,类的加载顺序
简单来说:静态属性初始化(默认,显示)构造初始化(构造代码块;构造函数).
具体来说:.class静态分配堆内存属性默认初始化属性显示初始化构造代码块初始化构造函数初始化栈内存指向对内存。
3,枚举是否可以继承类(2
枚举都继承自java.lang.Enum类,java不支持多继承,但可以实现接口。
4假如我们在开发一个系统时需要对员工进行建模,员工包含 3 个属性:姓名、工号以及工资。经理也是员工,除了含有员工的属性外,另为还有一个奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。examTest/Test2
注意:
a) 类的首字母是大写滴;
b) 要直接访问父类的构造函数,在本类的构造函数中,使用super(参数..),进行指定构造函数的访问。
c) 注意最好用要加入setName()等函数
5、 声明类Person,包含2个成员变量:name、age。定义函数sayHello(),调用时输出:我叫***,今年***岁了。声明类Chinese继承Person。
1)建立Person类,满足上述要求。
        2) 建立Chinese类,调用时,输出上诉要求
        3) 注意,如果类写了构造函数,则不会自动加入空参数的构造函数

2 个回复

倒序浏览
给力的三大特征,加油
回复 使用道具 举报
这个好啊,我收藏起来
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马