码迷,mamicode.com
首页 > 编程语言 > 详细

一、java初印象

时间:2015-07-25 22:47:45      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

工作了些时候,用的java语言,看了下thinking in java ,特在此记录和分享些自己的理解。

一、关于程序设计,就是对于复杂性的管理

关于复杂性,可以认为有两个方面的考虑:待解决问题的复杂性, 解决该问题工具的复杂性。待解决的问题,程序员不好把控,而解决的工具,就是编程语言。

 

二、关于java是完全面向对象的语言

1.java完全面向对象,需要以“类”级别才能独立存在,比如方法,是不能独立存在的,一个方法总会要属于一个类。

这个“类”级别,并不完全是class, interface,enum也是“类”级别。

对于“类”级别的存在,可以理解成一个一个人, 有人的地方就有江湖,有类的地方类之间就可能有关联,对于这种关联,比较好的一种理解方式是“把类看成服务者”(同时也是别的类的“被服务者”)。这种关系从小了看就是A类调用B类的方法, 从大了看也可以是某一个系统调用另一个系统提供的接口。

2.关于完全面向对象,就必须考虑代码复用的问题,java中对于复用的解决方式有两种:组合和继承。

组合:汽车拥有引擎,不必在汽车里面自己写引擎如何实现,而是调用引擎类,放到汽车类里面即可;继承之后再讲。

对于设计来说,一般是优先使用组合避免过多使用继承的原则。(虽然继承是java最重要的特性之一)

3.关于继承,简单的讲就是extends,A extends B ,那么A就拥有B中的所有元素,这样才写代码的时候就可以避免一些属性过多的重复写。

4.关于多态,常见的场景如下:

 1 class Animal {
 2 
 3   public void f(){}
 4 }
 5 
 6 class Fish extends Animal {
 7   @Override
 8   public void f() {}
 9 }
10 
11 class Dog extends Animal {
12   @Override
13   public void f() {}
14 }
15 
16 public class Test {
17   public static void main(String[] args) {
18     Animal animal = new Fish();
19     animal.f();
20   }
21 }

注意声明animal这里,父类声明指向子类对象, 可以把Fish换成Dog,其他地方不变,执行f()方法的时候系统会自动判别f()方法所述的对象,动态绑定到底是运行Fish中的f(),还是运行Dog中的f()。这个就是多态。

 

三、java中的四个特征:抽象、封装、继承、多态

参考二中的内容,把“类看成服务者”的范畴,对应的就是抽象和封装---level1

为了减少代码重复设计出来的父子关系,对应的就是继承--------------level2

在继承的基础上能够动态判定执行的方法,对应的就是多态------------level3

 

一、java初印象

标签:

原文地址:http://www.cnblogs.com/kaiguoguo/p/4676612.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!