2021-7-22-类的基本使用

7.1 设计一个圆类,具有属性:圆心(点)、半径。添加一个方法:判断一个圆是否 包含一个点。
public class Circular {
    private double pointX;
    private double pointY;
    private double r;
    public boolean isContainPoint(double x,double y){
        if(Math.sqrt(Math.pow(x-pointX,2)+Math.pow(y-pointY,2))>r)
            return false;
        else return true;
    }

    public Circular(double pointX, double pointY, double r) {
        this.pointX = pointX;
        this.pointY = pointY;
        this.r = r;
    }
}
public void test53(){
        boolean containPoint = new Circular(2, 2, 2).isContainPoint(2, 5);
        if(containPoint){
            System.out.println("在圆内");
        }else
            System.out.println("不在圆内");
    }
7.2 设计一个点类,具有属性:x、y坐标,具有方法:和另外一个点相加,得到一个 新的点,新的点的x坐标是原来两个点的x坐标和,y是原来两个点的y坐标和
public class Point {
    private int x;
    private int y;
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
    public Point add(Point p){
        return new Point(p.x+this.x,p.y+this.y);
    }
}
    public void test54(){
        Point point = new Point(2, 2);
        Point add = point.add(new Point(3, 3));
        System.out.println(add);
    }
7.3 设计一个MyArrays工具类,模拟实现:
public class MyArrays {
    public static void sort(int[] arr,boolean asc){
        int len = arr.length;
        //用快排排序
        quickSort(arr,0,len-1);
        //把排序好的数组逆序
        if(!asc){
            int temp;
            for (int i = 0; i < len/2; i++) {
                temp = arr[i];
                arr[i] = arr[len-1-i];
                arr[len-i-1] = temp;
            }
        }
    }
    private static void quickSort(int[] arr,int low,int high){
        if(low<high){
            int index = getIndex(arr, low, high);
            quickSort(arr,low,index-1);
            quickSort(arr,index+1,high);
        }
    }
    private static int getIndex(int[] arr,int low,int high){
        int temp = arr[low];
        while (low<high){
            while (low < high && arr[high] >= temp)
                high--;
            arr[low] = arr[high];
            while (low < high && arr[low] <= temp)
                low++;
            arr[high] = arr[low];
        }
        arr[low] = temp;
        return low;
    }
}
7.4 (易)定义一个网络用户类 要处理的信息有用户ID、用户密码、email地址。在建立类的 实例时 把以上三个信息都作为构造函数的参数输入 其中用户ID和用户密码时必须的 缺省 的email地址是用户ID加上字符串"@qf.com"
public class NetworkUser {
    private Long id;
    private String username;
    private String email;

    public NetworkUser(Long id, String username) {
        this.id = id;
        this.username = username;
        this.email = id+"@qf.com";
    }

    public NetworkUser(Long id, String username, String email) {
        this.id = id;
        this.username = username;
        this.email = email;
    }

    @Override
    public String toString() {
        return "NetworkUser{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}
7.5 小明交换牌:小明左手和右手分别拿了一张扑克牌,需要交换两只手中的扑 克牌。最后小明展示交换后的扑克牌。扑克牌有花色和点数属性。
public class Poker {
    PokerType type;
    PokerNum num;



    public Poker() {
    }

    public PokerType getType() {
        return type;
    }

    public void setType(PokerType type) {
        this.type = type;
    }

    public Poker(PokerType type, PokerNum num) {
        this.type = type;
        this.num = num;
    }

    public PokerNum getNum() {
        return num;
    }

    public void setNum(PokerNum num) {
        this.num = num;
    }

    public static void swap(Poker p1, Poker p2){
        Poker poker = new Poker();
        poker.num = p1.num;
        poker.type = p1.type;
        p1.num = p2.num;
        p1.type = p2.type;
        p2.num = poker.num;
        p2.type = poker.type;
    }

    @Override
    public String toString() {
        return "Poker{" +
                "type=" + type.getType() +
                ", num=" + num.getPokerStr() +
                '}';
    }
}
public enum PokerNum {
    PA(1,"A"),
    p2(2,"2"),
    p3(3,"3"),
    p4(4,"4"),
    p5(5,"5"),
    p6(6,"6"),
    p7(7,"7"),
    p8(8,"8"),
    p9(9,"9"),
    p10(10,"10"),
    pJ(11,"J"),
    pQ(12,"Q"),
    pK(13,"K"),
    p小王(15,"小王"),
    p大王(16,"大王");
    private int index;
    private String pokerStr;

    PokerNum(int index,String pokerStr) {
        this.index = index;
        this.pokerStr = pokerStr;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }

    public String getPokerStr() {
        return pokerStr;
    }

    public void setPokerStr(String pokerStr) {
        this.pokerStr = pokerStr;
    }
}
public enum PokerType {
    //♠♥♦♣
    hei("♠",1),
    hong("♥",2),
    fang("♦",3),
    mei("♣",4);
   private String type;
   private int typeIndex;
    PokerType(String type,int typeIndex) {
        this.type = type;
        this.typeIndex = typeIndex;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public int getTypeIndex() {
        return typeIndex;
    }

    public void setTypeIndex(int typeIndex) {
        this.typeIndex = typeIndex;
    }
}
public void test57(){
        Poker p1 = new Poker(PokerType.hong,PokerNum.PA);
        Poker p2 = new Poker(PokerType.hei, PokerNum.pK);
        System.out.println("交换前");
        System.out.println(p1);
        System.out.println(p2);
        Poker.swap(p1,p2);
        System.out.println("交换后");
        System.out.println(p1);
        System.out.println(p2);
    }
7.6 定义一个类,该类有一个私有成员变量,通过构造方法将其进行赋初值并提供该成员的 getXXX()和setXXX()方法 提示:假设有 private String name;
public class User {
    private String name;

    public User(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}
public void test59(){
        User user = new User("千锋");
        System.out.println(user.getName());
        user.setName("大数据");
        System.out.println(user.getName());
    }
7.7 已知一个书签(BookMark)具有属性:页码和备注。根据以下代码段,完成类的设计。
public class BookMark {
    private int index;//页码
    private String mark;//备注

    public BookMark(int index, String mark) {
        this.index = index;
        this.mark = mark;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }

    public String getMark() {
        return mark;
    }

    public void setMark(String mark) {
        this.mark = mark;
    }

    @Override
    public String toString() {
        return "BookMark{" +
                "index=" + index +
                ", mark='" + mark + '\'' +
                '}';
    }
}

7.8 在一个数组中,存储了5个书签(BookMark,直接使用上一题的类即可)。输出所有的 页码范围在 [20, 50] 范围内的书签,输出格式如下
public void test60(){
        BookMark[] bookMarks = {new BookMark(2,"第2页的备注")
                                ,new BookMark(29,"第29页的备注")
                                ,new BookMark(40,"第40页的备注")
                                ,new BookMark(50,"第50页的备注")
                                ,new BookMark(60,"第60页的备注")};
        for (BookMark bookMark : bookMarks) {
            if(bookMark.getIndex()>=20&&bookMark.getIndex()<=50){
                System.out.println(bookMark);
            }
        }
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值