马士兵J2SE-第三章-面向对象-基础及重载
来源:互联网 发布:pdf阅读器知乎 编辑:程序博客网 时间:2024/06/04 23:28
面向对象:
//面向对象的方法写一段程序,要求能够手动修改年月日的信息class Date {private int day;private int month;private int year;public Date (int d, int m, int y) {day = d; month = m;year = y;}public void setDay(int d) {day=d;}public void setMonth(int m) {month = m;}public void setYear(int y) {year = y;}public int getDay() {return day;}public int getMonth() {return month;}public int getYear() {return year;}public void display() {System.out.println(day+"-"+month+"-"+year);}}public class test {public static void main(String[] args) {test testdemo = new test();Date d1=new Date(3,11,2011);testdemo.change(d1);d1.display();}public void change(Date b) {b.setDay(5);b.setMonth(6);b.setYear(2046);}}
输出:
5-6-2046
我的写法,不过有问题,计算SQRT应该是DOUBLE的,所以定义的时候就有问题,但是毕竟是新手,依葫芦画瓢,能实现功能就。。。。对JAVA的使用也不灵活,死板的用吧。。。。
//定义一个"点"(Point)类来表示三维空间的点(有三个坐标)//1.可以生成具有特定坐标的点对象//2.提供那个可以设置三个坐标的方法//3.提供可以计算该点距远点距离平方的方法import java.math.*;class Point {private int xl;private int yl;private int zl;public Point(int x,int y,int z) {xl = x;yl = y;zl = z;}public void setXL(int x) {xl = x;}public void setYL(int y) {yl = y;}public void setZL(int z) {zl = z;}public int getXL() {return xl;}public int getYL() {return yl;}public int getZL() {return zl;}public void showlocation() {System.out.println(xl+","+yl+","+zl);}public void calclocation() {double n=xl*xl+yl*yl+zl*zl;double m=Math.sqrt(n);System.out.println(m);}}public class test {public static void main(String[] args) {test testdemo = new test();Point p1=new Point(3,4,0);//testdemo.change(p1);p1.showlocation();p1.calclocation();}public void change(Point d) {d.setXL(12);d.setYL(14);d.setZL(18);}}
输出:
3,4,0
5.0
马士兵的写法
class Point {double x,y,z;Point (double _x,double _y,double _z) {x = _x;y = _y;z = _z;}void setX(double _x) {x = _x;}void setY(double _y) {y = _y;}void setZ(double _z) {z = _z;}double getDistance(Point p) {return (x - p.x)*(x - p.x) +(y - p.y)*(y-p.y)+(z-p.z)*(z-p.z);}} public class test { public static void main(String[] args) { Point p =new Point (1.0,2.0,3.0); Point p1=new Point (0.0,0.0,0.0); System.out.println(p.getDistance(p1)); p.setX(5.0); System.out.println(p.getDistance(new Point(1.0,1.0,1.0))); } }
重载
public class test {public static void main(String[] args) {test t=new test();t.max(3, 4);short a=3;short b=4;t.max(a, b);}void max(short a,short b) {System.out.println("short");System.out.println(a > b?a:b);}void max(int a, int b) {System.out.println("int");System.out.println( a > b ? a : b);} void maxFlaot(float a, float b) {System.out.println("float");System.out.println( a> b ? a: b);}void max(float a,float b) {System.out.println( a > b ? a: b);} }
输出:
int
4
short
4
this
注意分析内存
public class test {int i = 0;test(int i) {this.i=i;}test increament() {i++;return this; }void print() { System.out.println("i="+i);};public static void main(String[] args) {test testdemo=new test(100);testdemo.increament().increament().print();}}
输出:
i=102
//为circle类建立一个方法,计算一个点(Point对象)是否在圆(Circle对象)内class Point {private double x;private double y;Point(double x1,double y1) {x=x1;y=y1;}public void setX(double x1) {x=x1;}public void setY(double y1) {y = y1;}public double getX() {return x;}public double getY() {return y;}}class Circle {private Point o;//点,圆心private double radius;//半径Circle(Point p,double r) {o = p;r = radius;}Circle(double r) {o = new Point(0.0,0.0);radius=r;}public void setO(double x,double y) {o.setX(x);o.setY(y);}public void setRadius(double r) {radius = r;}public Point getO() {return o;}public double getRadius() {return radius;}public double area() {return 3.14*radius*radius;}boolean contains(Point p) {double x=p.getX()-o.getX();double y=p.getY()-o.getY();if(x*x+y*y>radius*radius)return false;else return true;}}public class test {public static void main(String[] args) {Circle c1=new Circle(new Point(1.0,2.0),2.0);Circle c2=new Circle(5.0);System.out.println("c1:("+c1.getO().getX()+","+c1.getO().getY()+"),"+c1.getRadius());System.out.println("c1:("+c2.getO().getX()+","+c2.getO().getY()+"),"+c2.getRadius());System.out.println("c1 area="+c1.area());System.out.println("c2 area="+c2.area());c1.setO(5, 6);c2.setRadius(9.0);System.out.println("c1:("+c1.getO().getX()+","+c1.getO().getY()+"),"+c1.getRadius());System.out.println("c1:("+c2.getO().getX()+","+c2.getO().getY()+"),"+c2.getRadius());System.out.println("c1 area="+c1.area());System.out.println("c2 area="+c2.area());Point p1 = new Point(5.2,6.3);System.out.println(c1.contains(p1));System.out.println(c2.contains(new Point(10.0,9.0)));}}
输出:
c1:(1.0,2.0),0.0
c1:(0.0,0.0),5.0
c1 area=0.0
c2 area=78.5
c1:(5.0,6.0),0.0
c1:(0.0,0.0),9.0
c1 area=0.0
c2 area=254.34
false
false
自己理解做了点笔记写的程序,貌似答案有点问题。。。。加油训练吧!
- 马士兵J2SE-第三章-面向对象-基础及重载
- 马士兵J2SE-第三章-面向对象-static、继承、重写、构造函数
- 马士兵J2SE-第三章-面向对象-Object类:toString方法、equals方法、对象转型、抽象类抽象方法、final关键字、接口
- J2SE第三章面向对象设计思想
- 马士兵J2SE-第二章-J2SE基础语法-运算符
- J2SE之面向对象基础
- J2SE第三章——面向对象(一)
- J2SE第三章——面向对象(二)
- 马士兵J2SE-第二章-J2SE基础语法-标识符、关键字、数据类型转换
- 马士兵J2SE-第二章-J2SE基础语法(周六补充)-递归、非递归
- J2SE基础摘要——面向对象
- 马士兵J2SE-第四章-异常处理
- 马士兵J2SE-第五章-数组
- 马士兵J2SE-第七章-容器
- 马士兵J2SE-第八章-流
- Java基础第三章--面向对象编程
- 面向对象---J2SE
- j2se再次面向对象
- 常用日期操作Calendar
- odbc oledb ado jdbc
- MD5加密方式
- 使用svn的过程中check out的文件路径中的文件图标全都加上了“蓝色问号”的解决方案
- 回顾ali历程
- 马士兵J2SE-第三章-面向对象-基础及重载
- Fedora16正式版发布
- 比对文件后缀名 2011.11.09
- symbian v3模拟器开启后自动关闭
- 左手坐标系
- linux makefile 经验总结
- 适配器模式&外观模式
- 深入理解PHP之require/include顺序
- 存储持续性、作用域和链接性