小白程序媛的进击之路(面向对象)

2017/2/25


今天学习一下面向对象: 封装、继承、多态.


1 面向对象之封装

封装就是两层含义: 第一就是将属性和方法封装成对象, 第二就是实现信息隐藏, 部分信息对外不可见(可通过权限限制).


2 面向对象之继承

单继承、提高代码复用率、提高软件开发效率.子类初始化时会先去调用父类的无参构造方法, 如果没有编译器会自带.用super()调用父类的构造方法只能放在程序的第一行.子类继承父类时会继承全部的属性和方法, 虽然有可能没有权限访问.


3 面向对象之多态

允许重名、方法重载、成员覆盖、提高抽象程度、提高简洁程度.


=======================================================================================


类与对象: 对象是实际存在在该类中的实体.

Test t; 只是分配了栈内存, 注意只有new Test()的时候才会分配堆内存,并完成指向.

匿名对象只使用一次, 并没有任何引用指向它, 之后就会被java的垃圾回收器处理掉.


构造方法

1 具有与类名相同的名称

2 无返回值

实际是在用javac编译程序时, 如果没有声明的构造方法, 系统会默认生成一个空参的构造方法.

构造方法的私有化: 无论生命多少对象, 得到的都是同一个引用, 此类只产生一个实例对象.(单例模式)



对象的比较

"==" 与equals(): 前者比较两个对象的内存地址是否相同 后者比较两个对象的内容是否相同.


this关键字

this指代当前对象、this调用无参构造方法this()


static 关键字

静态变量对象共享、节省内存、还可以用来计算产生了多少实例对象


main()方法

public static void main(String args[])


静态代码块

类载入事静态代码块先执行,且只执行一次, 经常用来对类属性初始化. 静态代码块优先于静态方法


对象也可以放到数组里面.


内部类

可以减少内存开销, 但是会破坏程序结构, 避免使用.

外部类无法找到内部类的属性, 而内部类可以找到外部类的属性, 用static声明的内部类就变成了外部类, 但是不能访问非static的外部类属性.

只要将内部类声明为public就可以被外部调用.

在方法中也可以定义内部类, 但是只能访问方法中的final的局部变量, 因为final修饰的局部变量相当于一个常量, 超出方法的运行周期.


复写

子类复写父类中的方法时, 不能有比父类高的访问权限.


抽象类; 抽象类也可以有构造方法, 但是这些构造方法必须被子类明确调用.


final关键字

1 final修饰的类不能被继承

2 final修饰的方法不能被复写

3 final修饰的变量是常量,只能赋值一次.


接口

接口体现了java的一种多继承机制, 一个类只能继承一个类, 却可以实现多个接口.


向上转型: 父类的引用指向子类的对象, 无需强制转化, 会丢失精度.

向下转型: 需要强制转化.向下转的前提是一定之前有了向上转化.instanseOf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值