Java第二课 Java面向对象编程,面向对象编程和面向过程编程的区别,我们如何才能掌握面向对象的编程,类和对象的关系;讲解了Java中的构造、重载、this和super变量、静态变量、Java中的常
2012-02-17 08:58
1066 查看
位运算
面向对象的程序设计
小练习:求矩形的面积和周长
class Test{ public static void main(String[] args){ int i=0xffffffff;//两个f表示一个字节所表示的二进制位 -1 /*int c=i<<2;//左移 int c=i>>2;//有符号右移 int c=i>>>2;//无符号右移*/ //将一个整数110从右端开始的4~7位变为0 int c=110&7; System.out.println(i); System.out.println(c); System.out.println(Integer.toBinaryString(c)); System.out.println(Integer.toHexString(c)); } }
面向对象的程序设计
/*用final声明的常量 *要么在声明时进行初始化 *要么在类的构造函数中进行初始化 **/ class Point{ int x; int y; static int z; static final double PI=3.1415926; //数据成员在所有对象的内存中都有一份拷贝 Point(){ this(5,5); //调用Point带参数的构造函数 //此举可简化构造函数的调用 // PI=3.1415926; } Point(int a,int b){ x=a; y=b; // PI=3.1415926; } //调用静态方法时不需要产生类的对象就可以直接调用 static void output(){ System.out.println("Static Method Output() Called !"); //System.out.println("x="+x); //System.out.println("y="+y); } //静态方法:类方法 void output(int x,int y){ //区分成员变量和局部变量 this.x=x; this.y=y; z=5; }//非静态方法:实例方法 //成员方法在同一类的对象的内存中只有一份拷贝 public static void main(String[] args){ Point pt; /*pt=new Point(); System.out.println(Point.z); pt.output(1,2); //非静态方法可以调用静态成员变量 System.out.println(Point.z);*/ } }
/*在调用子类的构造函数之前会先调用父类的构造函数 *使用super可以访问父类中被覆盖的成员方法和数据成员 *构造方法不能被继承 * *多态性通过覆盖父类的引用来实现 *在运行时根据传递对象的引用来调用相应的方法 *在将子类的引用传递给父类时 *如果子类有该方法就调用子类的方法 *子类没有就调用父类的方法 * *instanceof 判断一个类的对象是否是一个类的实例 *子类的实例也是父类的实例 **/ class Animal{ int height; int weight; Animal(){ // System.out.println("Animal Construct !"); } void eat(){ System.out.println("Animal Eat !"); } void sleep(){ System.out.println("Animal Sleep !"); } void breathe(){ System.out.println("Animal Breathe !"); } } class Fish extends Animal{ Fish(){ //super();显式调用super方法调用父类中不带参数的构造方法 //super(1,1 ); //不能写成Animal(1,1); //System.out.println("Fish Construct !"); } //方法的覆盖 /*void breathe(){ // super.breathe();//访问父类中被覆盖的成员方法 System.out.println("Fish Bubble !"); }*/ } class Integration{ static void fn(Animal an){ an.breathe(); } public static void main(String[] args){ // Animal an=new Animal(); Fish fh=new Fish(); //an.breathe(); //an.height=175; //fh.breathe(); Animal an; an=fh;//用instanceof判断会显示an是Fish的一个对象 // Integration.fn(an); // Integration.fn(fh); // Animal an=new Animal(); // Fish fh=new Fish(); /*if(an instanceof Animal){ System.out.println("an is Animal's instance ."); } if(fh instanceof Fish){ System.out.println("fh is Fish's instance ."); }*/ if(an instanceof Fish){ System.out.println("an is Fish's instance ."); } else{ System.out.println("an is not Fish's instance ."); } if(fh instanceof Animal){ System.out.println("fh is Animal's instance ."); } else{ System.out.println("fh is not Animal's instance ."); } } }
小练习:求矩形的面积和周长
class Rectangle{ int height; int length; Rectangle(){ } Rectangle(int height,int length){ this.height=height; this.length=length; } int perimeter(){ return 2*(height+length); } int area(){ return height*length; } public static void main(String[] args){ Rectangle rec1=new Rectangle();//默认构造方法 System.out.println("perimeter = "+rec1.perimeter()); System.out.println("area = "+rec1.area()); Rectangle rec2=new Rectangle(3,5);//带参数构造方法 System.out.println("perimeter = "+rec2.perimeter()); System.out.println("area = "+rec2.area()); } }
相关文章推荐
- java学习日记_34:面向对象之super关键词、this与super的区别和继承中构造方法的关系。08.16~17
- java面向对象思想之方法的重载、this变量、静态变量、Java中的常量
- 关于初学者如何理解面向对象和面向过程的区别以及java中的类和对象
- 8、java高级面向对象-重载、构造器重载、初始化块、this、super、对象构造和初始化分析、覆盖、toString
- 黑马程序员_Java基础_面向对象(概述、类与对象关系、成员变量、封装private、构造函数和构造代码块、this关键字)
- 黑马程序员——Java基础---面向对象(面向对象,类,对象,匿名对象,封装,构造函数,构造代码块,this,static,main,帮助文档,静态代码块,单例)
- 面向对象,类的组合关系,继承,实现,方法重写,方法重载,this的使用,抽象方法和抽象类的比较,父类构造方法存在的意义,多态的是用和解析,各种访问修饰符
- JAVA面向对象基础:继承、变量隐藏、方法重写、包、修饰符、this、super
- 18天Java学习---14.面向对象编程09-Java中重载与复写的区别、super与this的比较
- 7 面向对象(成员变量和局部变量的区别,类作为形式参数的问题,匿名对象,封装,private关键字,this关键字,构造方法,类的初始化过程,static关键字)
- 浅入深谈:如何更好地理解面向对象编程与面向过程编程的本质区别?
- 黑马程序员——Java基础---面向对象代码块和继承和this和super和重写和重载和final
- java基础(八)Math/代码块/继承成员方法指南的关系/继承中成员变量之间的关系/方法的重写/继承中构造方法之间的关系/this和super的区别
- 黑马程序员——java第五天:面向对象(类、对象、变量、封装、构造、this)
- Java学习笔记---14.面向对象编程09-Java中重载与复写的区别、super与this的比较
- 面向对象_this和super的区别和应用
- 黑马程序员---java基础---面向对象中的构造方法及static关键字,变量的问题
- Java基础之面向对象(一)--特性、类和对象关系、this、private
- 【Java】面向对象-成员变量和局部变量的区别(掌握)
- 面向对象编程与面向过程编程的区别与联系