IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java学习——简单练习1 -> 正文阅读

[Java知识库]java学习——简单练习1

1.定义一个学生类 Student,它继承自 Person 类。

(1)Person类:

①成员变量(私有的):

●姓名(name),字符串类型(String);
●性别(sex),字符型(char);
●年龄(age),整型(int)。

②成员方法:
●构造方法:对所有成员变量初始化
●重写Object类的toString方法,返回字符串形如:姓名,性别,年龄
●重写Object类的equals方法,当且仅当两人的姓名相等且性别相等且年龄相等时,认为两人相等。

package impact;
public class Person {
	//先写成员变量:姓名,性别和年龄
private String name;
private int age;       
private char sex;
//setter/getter方法获取三个私有变量
public void setSex(char sex) {
	this.sex=sex;
}
public char getSex() {
	return sex;
}
public void setName(String name) {
	this.name=name;
}
public String getName() {
	return name;
}
public void setAge(int age) {
	this.age=age;
}
public int getAge() {
	return age;
}
//构造方法
//有参
public Person(String name,int age,char sex) {
this();//调用无参构造方法
this.name=name;
this.age=age;
this.sex=sex;
}
//无参
public Person() {
			}
//重写toString方法,连接字符串
public String toString(){
	return "性别:"+sex+",年龄:"+age+",名字:"+name;
}
//重写equals方法,判断是否相等
public boolean equals(Person p){
	Person other= (Person)p;//强制转换为Person类的对象
	if(sex==other.sex&&name==other.name&&age==other.age){
		return true;
	}
	return false;
}
}

(2)Student类

新增加的成员变量:
●学号(number),长整型;
●三门功课的成绩:哲学(phi),整型;
●英语 (eng),整型;
●计算机(comp),整型。
②新增加的方法:
●求三门功课的平均成绩 public double aver():该方法没有参数,返 回值类型为 double 型;
●求三门功课成绩的最高分 public int max():该方法没有参数,返回值为 int 型;
●求三门功课成绩的最低分 public int min():该方法没有参数,返回值为 int 型。
●覆盖父类的同名方法:public String toString():获取学号、姓名、性别、平均分、最高分、最低分信息。
●覆盖父类的同名方法equals:除了姓名、性别和年龄相等以外,学号也相等时,认为两学生相等。

package impact;
public class Student0 extends Person{
	//编写4个新增的成员变量
	long number;
	int phi,eng,comp;
	
	//写一个有参构造方法和无参构造方法
	public Student0(String name,int age,char sex,long number,int phi,int eng,int comp) {
		super(name,age,sex);
		this.phi=phi;
		this.comp=comp;
		this.eng=eng;
		this.number=number;
	}
	public Student0() {
		
	}
	
	//求三门功课的平均分的方法
	public double over () {
		double avg;
		System.out.println((double)(phi+eng+comp));
		avg=((double)(phi+eng+comp)/3);
		return avg;
	}
	//求三门功课中的最高分的方法
	public int max(){
		int tempMax=phi;
		int max1=tempMax>eng?tempMax:eng;
		 int max=max1>comp?max1:comp;
		 return max;
	}
	//求三门功课中的最低分的方法
	public int min(){
		int tempMin=phi;
		int min1=tempMin<eng?tempMin:eng;
		 int min=min1<comp?min1:comp;
		 return min;
	}
	//重写连接字符串的toString方法
	public String toString() {
		return  "学号:"+number+",性别:"+getSex()+",年龄:"+getAge()+",名字:"+getName()+",平均分:"+over()+",最低分:"+min()+",最高分:"+max();
	}
	//重写判断相等的equals方法
	public boolean equals(Student0 s){
		Student0 other= (Student0)s;
		if(getSex()==other.getSex()&&getName()==other.getName()&&getAge()==other.getAge()&&number==other.number)
		{
			return true;
		}
		return false;
	}	
}

(另)求最大值和最小值的另一种方法

int[]a=new int[2];
a[0]=phi;
a[1]=comp;
a[2]=eng;
Arrays.sort(a);
int max=a[2];
int min=a[0];

(3)编写测试程序。

程序要求实现:在程序中设置若干个学生信息(学号、姓名、性别、年龄、各科分数),要求通过运行程序,在屏幕中输出如下的结果:例如:学号:200501 姓名:李丽 性别:女 年龄:20 平均分:90.0 最高分:95 分 最低分:87。 试着比较两名学生是否相等。

//编写测试类
class Student0Test{
	public static void main(String [] args) {
	Student0 s1=new Student0("Youlandel",17,'女',12354,99,98,89); 
	Student0 s2=new Student0("Youlandel",17,'女',12345,86,98,73); 
	System.out.println(s1.toString());
	System.out.print(s1.equals(s2));
	}
}

运行结果

286.0
学号:12354,性别:,年龄:17,名字:Youlandel,平均分:95.33333333333333,最低分:89,最高分:99
false

2.编写一个 Application,其中包含三个同名方法 mySqrt(),它们都只有一个参数,参数的类型分别为 int 型、float 型和 double 型,它们的功能均为返回参数的平方根,返回值的类型与参数的类型相同。在方法 main( ) 中调用上面的三个方法并输出结果。

public class Classl{
static int n;
public static void main (String[] args){
if(args.length >= 3){  
int n;
float f;
double d;
n=Integer.parseInt(args[0]);           
f=Float.valueOf(args[1]).floatValue();  
d=Double.valueOf(args[2]).doubleValue();
//数据类型之间的转换
System.out.,println(n+"的平方根为:"+mySqrt(n));
System.out.println(f+"的平方根为:"+mySqrt(f);
System.out.println(d+"的平方根为:"+mySqrt(d));
}
else
{ System.out.println("缺命令行参数!"); System.exit(-1); 
}
static int mySqrt(int x){
return (int)Math.sqrt(x)}
static float mySqrt(float x){
return (float)Math.sqrt(x)}
static double mySqrt(double x){
return Math.sqrt(x)}
}

3.用递归求菲波那契数列前15项

已知菲波那契数列的数学表达式为:
fibonacci(n)=n, n=0,1;
fibonacci(n)=fibonacci(n-1)+fibonacci(n-2), n≥2;
用递归方法计算 Fibonacci序列,并打印出其前 15项的值

递归的三个条件
边界条件
递归前进段
递归返回段
当边界条件不满足时递归前进;当边界条件满足时递归返回。

main
f15
f14
f13
f13
f12
f11
f12
...
...
...
...
package impact/** 
 * 求数列:1,1,2,3,5,8......第15位的数 
 *  
 */  
public class Fibonacci {  
    public static void main(String[] args) {  
    for(int i=1;i<16;i++){
        System.out.print(f(i)+" ");  
    }  
      
    public static int f(int n ) {  
        if (1== n || 2 == n)   
            return 1;  
        else  
            return f(n-1) + f(n-2);  
    }  

}  

4.编程生产 100 个 1到 6 之间的随机数,统计 1到 6 每个数出现的概率。

方法1 if语句

package cv;
 
public class Impact {
    /*
    编写程序,随机产生100个1-6的整数。统计每个数出现的次数,修改程序,使之产生100个1-6的随机数,并统计每个数出现的概率。
    比较不同的结果并给出结论。
    1.随机数1-6 一共随机产出100位
    2.比较每个数出现的次数得出结论
     */
    public static void main(String[] args) {
        //1.建立一个数组 存放这100个整数
        int[] arr = new int[100];
        int[] count=new int[6];
        double[] c=new double[6];
        for (int i = 0; i <arr.length ; i++) {
           arr[bottom] = (int)( Math.random()*6)+1;
            bottom++;
            if (arr[i]== 1) {
                count[1]++;
            }
            if (arr[i]== 2) {
                count[2]++;
            }
            if (arr[i]== 3) {
                count[3]++;
            }
            if (arr[i]== 4) {
                count[4]++;
            }
            if (arr[i]== 5) {
                count[5]++;
            }
            if (arr[i]== 6) {
                count[6]++;
            }
        }
        for(int j=0;j<count.length;j++){
        c[j]=(float)count[j]/100;
        System.out.println("出现"+(j+1)"的概率为"+c[j]);
         }
        
      
       }
}

方法2 switch语句

   public static void main(String[]args){
		 int[] rand=new int[6];
		 double[] c=new double[6];
		 for(int i=0;i<100;i++){
		   int r=(int)(Math.random()*6)+1;
		   switch(r){
		  	 case 1: rand[0]++;break;
		  	 case 2: rand[1]++;break;
		  	 case 3: rand[2]++;break;
		  	 case 4: rand[3]++;break;
		  	 case 5: rand[4]++;break;
		  	 case 6: rand[5]++;break;
		   }	
		 }
		for(int j=0;j<rand.length;j++){
        c[j]=(float)rand[j]/100;
        System.out.println("出现"+(j+1)+"的概率为"+c[j]);
         }
        
		  
	   }
}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:12:16  更:2021-11-22 12:12:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:37:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码