今天具体练习了类和对象的使用,记住最重要的三步:
一:创建类,设计类的成员
二:创建类的对象
三:通过”对象.属性”或者”对象.方法“ 调用对象结构
举个简单的例子:圆面积
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;
}
}