• day13 面向对象练习


    //1

     1 public class Area_interface
     2 {
     3     public static void main(String[] args)
     4     {
     5         Rect r = new Rect(15, 12);
     6         Circle c = new Circle(8);
     7         System.out.println(r.getArea());
     8         System.out.println(c.getArea());
     9     }
    10 }
    11 
    12 interface Areable{
    13     double getArea();
    14 }
    15 
    16 class NotValueException extends RuntimeException{
    17     NotValueException(String message){
    18         super(message);
    19     }
    20 }
    21 
    22 // 矩形
    23 class Rect implements Areable{
    24     private int length,width;
    25     public Rect(int length,int width) {
    26         if (length <= 0 || width <= 0){
    27             throw new NotValueException("数值非法!");
    28         }
    29         this.length = length;
    30         this.width = width;
    31     }
    32     public double getArea()
    33     {
    34         return length*width;
    35     }
    36 }
    37 
    38 // 圆形
    39 class Circle implements Areable{
    40     private int radius;
    41     private static final double PI = 3.14;
    42     public Circle(int radius) {
    43         this.radius = radius;
    44     }
    45     public double getArea()
    46     {
    47         return PI*radius*radius;
    48     }
    49 }
    View Code

    //2

     1 public int search_char(char[] chs, char key)
     2 {
     3     if(chs==null){
     4         throw new IllegalArgumentException("数组为空");
     5     }
     6     for(int x = 0;x < chs.length;x++){
     7         if(key==chs[x]){
     8             return x;
     9         }
    10     }
    11     return -1;
    12 }
    View Code

    //3

     1 //first method
     2 int max = 0;     //初始化为数组中的任意一个角标
     3 for(int  x = 1; x < cir.length; x++){
     4     if(cir[x].radius > cir[max].radius){
     5         max = x;
     6     }
     7 }
     8 return  cir[max].radius;
     9 
    10 //second
    11 double max = cir[0].radius;    //初始化为数组任意一个元素的半径
    12 for(int  x = 1; x < cir.length; x++){
    13     if(cir[x].radius >max){
    14         max = cir[x].radius;
    15     }
    16 }
    17 return max;
    View Code

    //4

     1 class Person{
     2     private int age;
     3     private String name;
     4     public Person(int age, String name) {
     5         super();
     6         this.age = age;
     7         this.name = name;
     8     }
     9     
    10     public void say()
    11     {
    12         System.out.println(name+"  "+age);
    13     }
    14     //下面两个都是通过右键搞定的
    15     //get和set方法
    16     public int getAge()
    17     {
    18         return age;
    19     }
    20     public void setAge(int age)
    21     {
    22         this.age = age;
    23     }
    24     public String getName()
    25     {
    26         return name;
    27     }
    28     public void setName(String name)
    29     {
    30         this.name = name;
    31     }
    32     //hashcode和equals方法
    33     @Override
    34     public int hashCode()
    35     {
    36         final int prime = 31;
    37         int result = 1;
    38         result = prime * result + age;
    39         result = prime * result + ((name == null) ? 0 : name.hashCode());
    40         return result;
    41     }
    42     @Override
    43     public boolean equals(Object obj)
    44     {
    45         if (this == obj)
    46             return true;
    47         if (obj == null)
    48             return false;
    49         if (getClass() != obj.getClass())
    50             return false;
    51         Person other = (Person) obj;
    52         if (age != other.age)
    53             return false;
    54         if (name == null) {
    55             if (other.name != null)
    56                 return false;
    57         } else if (!name.equals(other.name))
    58             return false;
    59         return true;
    60     }
    61 }
    equals方法通过eclipse自动生成

     

    //5

    1 public boolean equals(Object other){
    2     if( !(other  instanceof  Circle) ){
    3         throw new ClassCastException(other.getClass().getName+"类型错误");
    4     }
    5     Circle c = (Circle)other;
    6     return  c.radius==this.radius;
    7 }
    View Code
  • 相关阅读:
    继承
    构造函数,重载
    Java Scanner学习记录
    20131204-数据库基础
    20131128-正则表达式与委托
    20131125-序列化与正则表达式
    20131127-正则表达式
    20131120-接口字符串-小鸭子练习
    20131118-静态类抽象类-外部设备
    20131117-练习面向对象
  • 原文地址:https://www.cnblogs.com/-nbloser/p/8278156.html
Copyright © 2020-2023  润新知