`

java编程操作心血

阅读更多

/*

多态:父类的引用指向子类的对象。

当两个类中有同一个方法(覆盖)时会优先调用子类

*/

Demo1。

package pc2;

class Father

{

 

public void func1()

{

  func2();

}

public void func2()

{

System.out.println("AAA");

}

}

class Son extends Father

{

public void func1(int i)

{

System.out.println("BBB");

}

public void func2()

{

System.out.println("CCC");

}

}

public class Duotai {

 

public static void main(String[] args) {

// TODO Auto-generated method stub

Father child=new Son();

child.func1();child.func2();

/*child.func1(22);不能通过编译父类里没有func1(int i)*/

}

 

}

输出 CCC  

    CCC

 

Demo2.

package pc2;

class Vehicle

{

public void startUp()

{

System.out.println("调用了Vehicle类的startUp方法");

}

}

class Car extends Vehicle

{

public void startUp()

{

System.out.println("调用了Car类的startUp方法");

}

}

public class Sample4_5 {

 

public static void main(String[] args) {

// TODO Auto-generated method stub

Car c=new Car();

c.startUp();// 

Vehicle v=new Car();

v.startUp();

}

 

}

输出:调用了Car类的startUp方法

调用了Car类的startUp方法

 

Demo3

package pc3_memory;

class Vehicle

{

void startUp()

{

System.out.println("一般汽车的启动方法");

}

String s="I'm OK!";

}

class Car extends Vehicle

{

void startUp()

{

System.out.println("小轿车的启动方法");

}

String s="Maybe you are right";

}

public class Sample4_5 {

 

public static void main(String[] args) {

// TODO Auto-generated method stub

 

//动态链接时方法与变量的区别

Vehicle v=new Car();

v.startUp();

System.out.println(v.s);

System.out.println(((Car)v).s);//强制类型转化

}

 

}

输出:小轿车的启动方法

I'm OK!

Maybe you are right

 

Demo4

/*

对象与数组的关系

*/

 

Deno1

package pc2;

 

public class Reference {

public static void main(String args[])

{

   Person students[];

   students=new Person[2];

 // System.out.println( students[1].age);

   System.out.println("length   "+students.length);

   Person zhang=new Person();//定义并且实例化一个叫zhang的Person对象

   zhang.age=15;

   zhang.height=200;

   Person lee=new Person();

   lee.age=17;

   lee.height=204;

   students[0]=zhang;//把对象赋给Person类型的数组

   students[1]=lee;

   lee.info();//最后两条语句功能相同

   students[1].info();

}

}

 

  class Person {

  public int age;

  public double height;

  public void info()

  {

 System.out.println("my age is:"+age+"my height is:"+height);

  }

}

/*

length2

my age is:17my height is:204.0

my age is:17my height is:204.0

 

*/

Demo5

String s2="Monday";与

String s2=new String("Monday");的区别

package pc3_memory;

 

public class StringTest {

 

public static void main(String[] args) {

// TODO Auto-generated method stub

String s1="Monday";

String s2="Monday";

//String s2=new String("Monday");依次按照上下隐藏s2

if(s1==s2)

System.out.println("s1==s2");

else

System.out.println("s1!=s2");

if(s1.equals(s2))

System.out.println("s1.equals(s2)");

else

System.out.println("!s1.equals(s2)");

}

}

/*在堆里面创建好了字符串1过后,开创建s2时会先在堆里面(字符前缓冲池)判断有没有与s1对象相同值的

 字符串,若有则s2会直接的引用s1.

 如果使用new操作符,则表明需要一个新的,不要旧的。一个新的值相同的对象被创建,在缓冲池的不同位置

 。就好比如一个人在河里游泳,而另一个人在岸边散步*/

/*

输出

s1==s2

s1.equals(s2)

*/

隐藏上面的:输出

s1!=s2

s1.equals(s2)

 

Demo6接口,内部类

内部类

package pc2;

 interface ComputerWeight//定义了一个接口实现计算重量的功能

{

public   double ComputeWeight() ;

 

//接口没有构造函数,因为构造函数不能继承,Java是纯虚的,抽象类可以有构造函数

 

}

class Television implements ComputerWeight//以下三个类实现了接口的功能,通过在类体里实现接口的方法

{//计算电视机的重量

Television(double a)

{

this.a=a;

}

public double ComputeWeight()

{

return a;

}

double a;

}

class Computer implements ComputerWeight

{//计算电脑的重量

Computer(double a)

{

this.b=a;

}

public double ComputeWeight()

{

return b;

}

double b;

}

class WashMachine implements ComputerWeight

{//计算洗衣机的重量

WashMachine(double a)

{

this.c=a;

}

   double c;

   public double ComputeWeight()

   {

  return c;

   }

}

class Car//定义汽车类,实现将不同的接口实现的功能相加

{

ComputerWeight goods1;//表现出like-a

ComputerWeight goods2;

ComputerWeight goods3;

Car(ComputerWeight goods1,ComputerWeight goods2,ComputerWeight goods3)

{

this.goods1=goods1;

this.goods2=goods2;

this.goods3=goods3;

}

public double getTotalWeights()

{

return goods1.ComputeWeight()+goods2.ComputeWeight()+goods3.ComputeWeight();

}

}

public class InterTest {

public static void main(String args[])

  {  ComputerWeight goodsOne=new Television(93);/*接口类型的引用

  指向一个实现该接口的对象,这是Java里的一种多态现象。

  Java里的接口不能被实例化,通过接口来调用方法,屏蔽掉具体方法的实现。

  这就是接口回调,也叫做面向接口的编程

  */

ComputerWeight goodsTwo=new Computer(32);

ComputerWeight goodsThree =new WashMachine(45);

    Car  car=new Car(goodsOne, goodsTwo, goodsThree);

    System.out.println(car.getTotalWeights());

    System.out.println(goodsOne.ComputeWeight());

    System.out.println(goodsTwo.ComputeWeight());

    System.out.println(goodsThree.ComputeWeight());

}

}

输出:

170.0

93.0

32.0

45.0

分享到:
评论

相关推荐

    JAVA程序设计语言基础

    你不想学习现在最高级的程序高计语言吗,你知道它是什么吗?本人经过多年的心血总结出最强大的学习这门高级程序设计语言的教程---JAVA程序设计语言,希望你能喜欢!!!

    java jmf编程的笔记

    学啦半年java的我心血来潮编写播放器,但是对jmf完全不熟,于是上网找啦半天。都是前辈的心得,分享给友友们,希望对你们有帮助。

    java jmf编程

    学啦半年java的我心血来潮编写播放器,但是对jmf完全不熟,于是上网找啦半天。都是前辈的心得活总结什么的,分享给友友们,希望对你们有帮助。

    calculator_java.zip_Java GUI计算器_sin函数 java

    这是一个java写的计算器,除了加减乘除外还实现了许多的函数,比如sin,cos,求倒数,二十进制转换等,是我十多天的心血,程序非常长,也成功实现了设定的功能,有漂亮的用户界面,通过这个程序可以学到很多关于java ...

    java 做的俄罗斯方块

    该方块是本小组的杰作 融汇了java程序精华部分的,凝结了我们的大作业的心血

    java 小程序 圣诞贺卡(仿qq农场小游戏)

    这是一个心血来潮的小作品...... | | 身边的朋友都喜欢玩农场,圣诞节将近,见到朋友的心情改的是想种圣诞老人,于是就 | | 有了这个小玩意。希望大家快乐。初学java,把一些基本的东西,尽量都用上了。适合初学...

    初学Java编写的万年历

    初学Java编写的万年历程序,花费了不少心血,大家可以参考下!

    JAVA&JEE知识点汇总—真正自己的学习总结

    包括了Java基础知识、面向对象、IO流、线程、网络编程、JEE、servlet、JSP、Javascript、框架理解、ORM对象关系型数据库映射、hibernate、spring、事务、EJB、UML等技术的基本理解和总结,文档共66页!

    阿里 Java 开发手册多版本.7z

    内含阿里多个版本编程规范,编程规范是基础!项目未动,规范先行!包含了无数阿里人的心血和技术结晶,踩了无数的坑之后才有的这个规范。也可以在 Idea 插件中下载阿里编程规范的插件。

    EfsFrame(java开发框架) v2.2 源代码.rar

    Efs框架从研发到时间,历时近10年,积累了大量实战软件工程专家、数学专家的心血不断完善而成,已应用的大大小小的项目几十个,从小项目的开发管理维护设计到大项目的负载均衡设计,Efs逐渐形成了一整套完整的基于B/...

    操作系统中的进程调度算法

    操作系统中的进程调度算法,包括时间片轮,优先数,先进先出~~~心血啊。

    java学习—租车系统

    在培训学校学习时做的一个小项目,加上了socket、C3P0连接池和swing界面。MD5加密、Excel批量添加什么的没来的及做,能力有限,项目时间不够用,...虽然做的不好看,但毕竟是自己的心血,希望能给需要的人一些启发。

    培训资料利用SSH信息管理系统javaWEB源码代码

    为了高薪就业,我花了不少心血去参加培训,在培训中,也下了很大的功夫 ,学会了太多太多,就业之后才发现,会的东西还是太少, 真正的就业了,才发现,应该抓紧时间,多会写东西,然后追逐自己的利益, 得到自己的...

    myeclipse+jdk java银行系统

    非常不错的资源 myeclipse+jdk1.6 本人花费了不少心血完成的!采用ui->bo->dao分层架构,实现了数据库存储数据及使用文件系统保存数据,供初学者学习

    终极高手必备-阿里Java开发手册

    一本书可以改变一个人,一本书集成了无数人的心血。对于一个编程多年的老鸟,我想你需要这样一本书。

    Python学习 | 一个JAVA程序员两天的Python入门笔记

    人物:一个心血来潮学习Python的JAVA程序员 文章目录vlog正文入门基础注释算数运算符及优先级程序执行原理变量概念和定义方式变量的命名变量的输入和输出数据类型数值型非数值型列表元组列表与元组的互相转换字典...

    KgShop金刚网店系统 v3.0.2.rar

    Kgshop每一行代码都经过严谨的测试,汇聚大批工程师多年的心血。广州JUULUU会继续努力,一步步优化这款来之不易的开源java SHOP。 要求运行环境: Mysql 5.1 app server;Tomcat 6.0.33/7 jboss 6/7 编译Java SDK...

    eclipse +cdt+MinGW.pdf

    在用Eclipse编写Java应用程序时,感觉很爽,Eclipse不愧是强大的IDE,不冤枉IBM花看那么多钱和众多开源爱好者的努力(你们辛苦了!!谢谢!!!)。突发奇想,想玩玩Eclipse编写C++程序。 。。。。。。 在Windows下...

    AutoUpdater(新版自动升级组件)源码 v2.0

    工作两年居然没有在上面发布任何资源,前几天心血来潮把平时的练习的一个东西拿来重写了一下,现在把源码拿来给大家分享一下。

Global site tag (gtag.js) - Google Analytics