Java-菜鸟学习之路(四)

来源:互联网 发布:vmware14 mac os补丁 编辑:程序博客网 时间:2024/05/29 03:33

Java-菜鸟学习之路(四)

今天是培训Java的第四天,下面的今天的一些代码,分享给大家。
  1. 根据输入的日期,得到是星期几
    import java.util.Scanner;import java.util.Date;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;public class CalendarTest{public static void main(String[] args){System.out.println("请输入2014-09-04格式日期:");Scanner scanner = new Scanner(System.in);String str = scanner.nextLine();Calendar c = null;try{SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date date = sdf.parse(str);c = Calendar.getInstance();c.setTime(date);}catch(Exception e){}System.out.println("一年中第"+c.get(Calendar.DAY_OF_YEAR)+"天。");switch(c.get(Calendar.DAY_OF_WEEK)){case 1:System.out.println("星期天");break;case 2:System.out.println("星期一");break;case 3:System.out.println("星期二");break;case 4:System.out.println("星期三");break;case 5:System.out.println("星期四 ");break;case 6:System.out.println("星期五");break;case 7:System.out.println("星期六");break;}}}

  2. 继承的测试,多参构造函数,对父类构造方法的调用
    class Person{String name;String addr;String sex;int age;public Person(){}public Person(String name,int age){this.name = name;this.age = age;}public Person(String name,String addr,String sex,int age){this.name = name;this.age = age;this.addr = addr;this.sex = sex;}public String toString(){return this.name+" "+this.age+" "+this.addr+" "+this.sex;}}class Student extends Person{int mathScore;int englishScore;public Student(){}public Student(String name,int age){super(name,age);}public Student(String name,String addr,String sex,int age,int mathScore,int englishScore){super(name,addr,sex,age);this.mathScore = mathScore;this.englishScore = englishScore;}public String toString(){return this.name+" "+this.age+" "+this.addr+" "+this.sex+" "+this.mathScore+" "+this.englishScore; }}public class ExtendsTest{public static void main(String[] args){Student stu = new Student("某某","苏州","男",22,99,98);System.out.println(stu.toString());}}

  3. 求圆形,三角形和梯形的周长和面积
    interface Shape{public String getArea();public String getPerimeter();}class Round implements Shape{int radius;final double π = 3.14;Round(int radius){this.radius = radius;}public String getArea(){return "圆形面积为:"+π*radius*radius;}public String getPerimeter(){return "圆形周长为:"+π*radius*2;}}class Triangle implements Shape{double a,b,c;Triangle(double a,double b,double c){if((a+b>c)&&(a+c>b)&&(b+c>a)){this.a = a;this.b = b;this.c = c;} else {System.out.println("无法创建一个三角形!!!");}}public String getArea(){double p = (a+b+c)/2;//System.out.println(p+"--------"+a+" "+b+" "+c);double area = Math.sqrt(p*(p-a)*(p-b)*(p-c));return "三角形面积为:"+area;}public String getPerimeter(){double length = a+b+c;return "三角形周长为:"+length;}}class Ladder implements Shape{double top,down,left,right;Ladder(double top,double down,double left,double right){this.top = top;this.down = down;this.left = left;this.right = right;}public String getArea(){double p = (left+right+down-top)/2;double area = Math.sqrt(p*(p-left)*(p-right)*(p-down+top));double height = 2*area/(down-top);double ladArea = (top+down)*height/2;return "梯形面积为:"+ladArea;}public String getPerimeter(){double length = top+down+left+right;return "梯形周长为:"+length;}}public class ShapeTest{public static void main(String[] args){Round r = new Round(3);System.out.println(r.getArea());System.out.println(r.getPerimeter());Triangle t = new Triangle(1,1,1);System.out.println(t.getArea());System.out.println(t.getPerimeter());Ladder lad = new Ladder(4,10,5,5);System.out.println(lad.getArea());System.out.println(lad.getPerimeter());}}

  4. 今天学习的重点是继承和多态,Java的类只可以实现单继承,即只有一个父类。Java中的多继承通过接口实现。
  5. 继承:是OOP(Object Oriented Programming)编程技术的一块基石。它意味着基于一个已经定义好的类创建一个新的类,新的类将以某种方式扩展原有的类。体现的是is-a的关系。在OOP的编程中,继承意味着新的类来自父类,且每个类都有一个直接的父类。父类或者显示定义的,或者隐式规定的,如果没有显示地定义父类,那隐含的父类就是Object类。
    好处:代码的可重用性    缺点:依赖性太强    (低藕合   高内聚)
0 0
原创粉丝点击