类与对象使用

        今天具体练习了类和对象的使用,记住最重要的三步:

一:创建类,设计类的成员

二:创建类的对象

三:通过”对象.属性”或者”对象.方法“ 调用对象结构

举个简单的例子:圆面积

package com.atjialiang.exer;
/*
 * 圆的测试
 * 
 * 
 */
public class CircleTest {                             
        public static void main(String[] args) {
            Circle c1 = new Circle();
            c1.radius = 2;
            //double area = c1.findArea();
            //System.out.println(area);
            
            c1.findArea();
        }
}


//圆
class Circle{
    //属性
    double radius;
    
    //求圆的面积
    /*方式1
     * public double findArea() {
     * double area = Math.PI * radius * radius;
        return area;
        }
     * 
     */
        
    //方式2:
       public void findArea()
       {
           double area = Math.PI * radius * radius;
           System.out.println("面积是: " + area );
       }
    
}

 

练习二:打印矩形

package com.atjialiang.exer;
/*
 * 1 声明一个method方法 ,在方法中打印10*8的矩形,在main方法中调用该方法
 * 
 * 2 修改上一个程序,在method方法中,除打印一个10*8的矩形外,在计算该矩形的面积
 *   并将其作为方法的返回值。在main方法中调用,接收返回的面积值并打印
 * 
 * 3 修改上一个程序,在method方法提供m和n两个参数,方法打印m*n的矩形
 *   并计算该矩形的面积,并将其作为方法返回值。在main方法调用该方法,接受返回值并打印
 * 
 */
public class Exer3Test {
                public static void main(String[] args)
                {
                    Exer3Test test = new Exer3Test();
                    
//                    test.method();
//                    int area = test.method();
//                    System.out.println("面积为: " + area);
                    
                    //System.out.print(test.method());
                    
                    System.out.print(test.method(12, 10));
                    
                }
                
                
            //public void method()
                //{
//                    for(int i = 0;i < 10;i++)
//                    {
//                        for (int j = 0;j < 8;j++)
//                        {
//                            System.out.print("* ");
//                        }
//                        System.out.println();
//                    }
                
//                public int method()
//                {
//                    for(int i = 0;i < 10;i++)
//                    {
//                        for(int j = 0;j < 8; j++)
//                        {
//                            System.out.print("* ");
//                        }
//                        System.out.println();
//                    }
//                    return 10 * 8;
                
                
                
                //}
                
                
                public int method(int m,int n)  //声明形参
                {
                 for(int i = 0;i < m;i++)
                 {
                    for(int j = 0;j < n; j++)
                    {
                        System.out.print("* ");
                    }
                    System.out.println();
                 }
                 return m * n;
                }    
            
}

 

练习三:学生成绩

package com.atjialiang.exer;
/*

 * 对象数组型
 * 定义类Student,包含三个属性:学号number(int),年级state(int),成绩score(int).
 * 创建20个学生对象,学号为1到20.年级和成绩都有随机数确定。
 * 
 * 问题一: 打印出3年级(state值为3)的学生信息。
 * 问题二:使用冒泡法排序学生成绩升序,并遍历所有学生信息
 * 
 * 提示
 * 1 生成随机数:   ,返回值类型double
 * 2 四舍五入取整数   Math.round(double d)  返回值类型long
 */

//此代码  改进  将功能封装到方法中

public class StudentTest {

    public static void main(String[] args)
    {
        //声明一个Student类型的数组
        Student[] stus = new Student[20]; //类似于 String[] arr = new String[20];
        
        for(int i = 0;i < stus.length ;i++)
        {
            //给元素赋值
            stus[i] = new Student();
            //给Student对象的属性赋值
            stus[i].number = (i + 1);
            stus[i].state = (int)(Math.random() * (6 - 1 + 1) + 1);
            stus[i].score = (int)(Math.random() * (100 - 0 + 1) + 0);
            
        }
        
        StudentTest test = new StudentTest();
        //遍历学生数组
        test.print(stus);
        System.out.println("*****************************");
        
        test.searchState(stus, 3);
        System.out.println("*****************************");
        
        test.sort(stus);
        test.print(stus);
        
        
        
        
        
        
        
//        //遍历
//        for (int i = 0;i < stus.length ;i++)
//        {
//            //System.out.println(stus[i].number + "," + stus[i].state + "," + stus[i].score);
//            System.out.println(stus[i].info());
//        }
        
        //System.out.println("***************************************");
//        //打印三年级学生成绩
//        for(int i = 0;i < stus.length ;i++)
//        {
//            if(stus[i].state == 3)
//            System.out.println(stus[i].info());
//        }
        //System.out.println("*********************************");
        //冒泡排序
//        for(int i = 0;i < stus.length;i++)
//         {
//             for (int j = 0;j < stus.length - 1 - i;j++)
//             {
//                 if(stus[j].score > stus[j + 1].score )
//                 {
//                     //如果换序,交换的是数组元素:Student对象
//                     Student temp = stus[j + 1];
//                     stus[j + 1] = stus[j];
//                     stus[j] = temp;
//                 }
//             }
//         }
        
        
//        for (int i = 0;i < stus.length ;i++)
//        {
//            //System.out.println(stus[i].number + "," + stus[i].state + "," + stus[i].score);
//            System.out.println(stus[i].info());
//        }
//        
//
    }

  
    
        //遍历Student
        public void print(Student[] stus)
        {
            for (int i = 0;i < stus.length ;i++)
            {
                System.out.println(stus[i].info());
            }
        }
        
        //打印三年级学生成绩

        public void searchState(Student[] stus,int state)
        {
            for(int i = 0;i < stus.length ;i++)
            {
                if(stus[i].state == 3)
                System.out.println(stus[i].info());
            }
        }
        
        //冒泡排序
        public void sort(Student[] stus)
        {
            for(int i = 0;i < stus.length;i++)
                 {
                     for (int j = 0;j < stus.length - 1 - i;j++)
                     {
                         if(stus[j].score > stus[j + 1].score )
                         {
                             //如果换序,交换的是数组元素:Student对象
                             Student temp = stus[j + 1];
                             stus[j + 1] = stus[j];
                             stus[j] = temp;
                         }
                     }
                 }
        }

}

class Student
    {
         int number;//学号
         int state;//年级
         int score;//分数
         
         //显示学生信息的方法
         public String info()
         {
             return "学号:" + number + ",年级:" + state + ",分数:" + score;
         }
         
    
    }
    

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不摆烂的亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值