`
liuwei1981
  • 浏览: 772401 次
  • 性别: Icon_minigender_1
  • 来自: 太原
博客专栏
F8258633-f7e0-30b8-bd3a-a0836a5f4de5
Java编程Step-by...
浏览量:161290
社区版块
存档分类
最新评论
文章列表
在Java中,对象变量是多态的。一个类型为Aclass的变量既可以指向类型为Aclass的对象,又可以指向Aclass的任何子类的对象。 以多态的形式来传递参数,增强了参数类型的灵活性。 现在假设有一个类Aclass,由它派生了一个子类Bclas ...
在Java中,除了可以使用抽象类来实现一定程度的抽象外,还可以定义一种特殊的“抽象类”----接口(interface)。   接口是方法声明和常量值的定义的集合。在抽象类中,有些方法被实现,而有些方法只有方法的声明,没有方法的具体实现(抽象方法),而在接口中,所有的方法都没有被实现。和抽象类中的抽象方法不一样,这些没有被实现的方法不需要加上关键字abstract来将它声明为抽象方法。   接口的定义   和类定义不同,接口的定义不使用关键字“class”,而是用另外一个关键字“interface”,接口定义的基本格式如下: <modifier> interface & ...
有时候,我们会碰到另外的一种情况,比如,银行利息的计算,都是利率乘以本金和存款时间,但是,各种存款方式计算利率的方式的不同,一般而言,定期的存款利率比活期的利率要高;而定期的时间越长,它的利率也越高。 ...
在我们编写一个对象的时候,我们可能会对一些类的方法进行定义,但是并不具体实现。而是将这些方法的实现放到它的子类中去。这样可以增强类设计的灵活性。   比如,我们定义了一个表示各种图形的类Shape,这个类有一 ...
在Java的类、方法和变量前面,可以加上final关键字。final关键字表示它修饰的类、方法或变量不可被改变。   在很多笔试题目中,喜欢拿final关键字来做文章。   1 final类       final类不可以被继承,比如java.lang.Math。如果 ...
所谓设计模式(Design Pattern),是为了满足对优秀、简单而且可重用的解决方案的需要。这就像我们在盖楼的时候,我们不会每次都从零开始来画图纸,而是参照某种已有的模式,然后在此基础上来设计它。而在面向对象程序设 ...
接下来讲讲static自由块。   前面提到了自由块(游离块),那么作为Java源代码特殊的组成部分,是可以用static来修饰的。修饰后的结果我们来分析下。   自由块可以看成是一种特殊的方法,这个方法没有方法名、没有输入参数、没有返回值,不能进行方法调用。从这个角度来看,在自由块前面也可以加上static关键字来修饰。这样,这个自由块就成了静态自由块。静态自由块通常用于初始化静态变量。 public class Count { private int serialNumber;  public static int counter;  static {  System.out. ...
接下来零星的讲一些有关Java编程的一些高级特性,以及Java编程的第三大面向对象特性——多态。   这里先来讲讲static关键字。   在Java中,可以将一些成员限制为和类相关的,而不是和实例相关的。实现这个目的的方法是,在类的成员如方法、属性乃至自由代码块前面加上“static”这个修饰符。 实例变量用于描述单个实例的状态,而类变量用于描述类的状态,和具体的实例无关。   实例方法用于操作实例变量并维护特定实例的状态,而类方法并不了解单个实例的状态。 在Java中,static最常用的地方是用在Java应用程序的入口方法main()前面用于修饰main()方法,表示mai ...
首先要说明的是,我不是应聘程序员,算是技术面试官。   这次面试下来,再想想自己曾经作为一个应聘者的一些经历,想到了一些。   面试时,首先要态度诚实,或者说诚恳。这是最基本的,特别是技术职位面试,技术人 ...
==和equals()恐怕是刚刚开始学习Java中,最让人混淆的东西了。下面就可以   在Java程序设计中,我们经常需要比较两个变量值是否相等,比如: a = 10; b = 12; if(a == b) {  //statements }   再如: ClassA a = new ClassA(“abc”); ClassA b ...
在Object类中,定义了一个toString()方法,用来返回一个表示这个对象的字符串:public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode());    } 在这个方法中,它将返回一个由类名、紧随其后的“@”符号和hash码的无符号的十六进制字符串,用来表示这个对象。   在前面提到了,Object类是所有Java类的超级父类,根据类的继承原则,也就意味着,在Java中,任何一个Java类都拥有了这个toString()方法了。 我们来 ...
虽然Java语言是典型的面向对象编程语言,但其中的8种基本数据类型并不支持面向对象的编程机制,基本类型的数据不具备“对象”的特性----没有属性、没有方法可调用。沿用他们只是为了迎合程序员根深蒂固的习惯,并能简单、有效地进行常规数据处理。 这种借助于非面向对象技术的做法有时也会带来不便,比如引用类型数据均继承了Object类的特性,要转换为String类型(经常有这种需要)时只要简单调用Object类中定义的toString()即可,而基本数据类型转换为String类型则要麻烦得多。   为解决此类问题,Java语言引入了封装类的概念,在JDK中针对各种基本数据类型分别定义相应的引用类型, ...
有关类的继承的内容大概其就这么多了。之前提过了对象的构造以及初始化。现在在类的继承的基础上,继续来说对象的构造以及初始化,主要讨论子类如何完成继承父类的初始化。   当调用类的构造器来创建对象时,它将给新建的对象分配内存,并对对象进行初始化操作。   现在我们来探讨对对象进行初始化操作时候的细节。       对象的初始化操作将递归如下的步骤来进行:     1.设置实例变量的值为缺省的初始值 (0, false, null),不同的数据类型有不同的初始值。 2.调用类的构造器 (但是还没有执行构造方法体),绑定构造器参数。 3.如果构造器中有this()调用,则根据 ...
1 使用this来区分当前对象    Java中为解决变量的命名冲突和不确定性问题,引入关键字“this”代表其所在方法的当前对象:   构造器中指该构造器所创建的新对象;方法中指调用该方法的对象;在类本身的方法或构造器中引用该类的实例变量和方法。 this只能用在构造器或者方法中,用于获得调用当前的构造器、方法的对象引用。可以和任何的对象引用一样来对处理这个this对象。 下面我们以一个案例来演示一下如何在一个类的方法中调用同一个类的另一个方法:   public class Person { private String name;  private int age; ...
经常会看到在各种Java编程技术文章,讨论如何提高java代码的运行效率。其中最频繁提到的,就是将代码中String类型对象的+字符串连接运算,使用StringBuilder对象的append方法来代替,用于提高运行效率。   确实,在java程序中, ...
Global site tag (gtag.js) - Google Analytics