类和对象的创建--------相关练习

1.类的设计

 

 (1)创建Person类

public class Person {
     String name;
     int age;
     int sex;
     /**
      * sex 1:male
      * sex 0:female
      */
     public void study(){
    	 System.out.println("studying");
     }
     public void showAge(){
    	 System.out.println("age="+age);
     }
     public int addAge(int i){
    	 age+=i;
    	 return age;
     }    
}

(2)创建第二个对象

public class PersonTest {
     public static void main(String[] args){
    	 Person p1=new Person();
    	 p1.name="Tom";
    	 p1.age=10;
    	 p1.sex=1;
    	 p1.study();
    	 p1.showAge();
    	 int newAge=p1.addAge(2);
    	 System.out.println(p1.name+" new age:"+newAge);
    	 System.out.println(p1.age);   	 
    	//**********
    	 Person p2=new Person();
    	 p2.showAge();//0
    	 p2.addAge(10);//10
    	 p1.showAge();//12  	 
     }
}

2.方法声明

在 method 方法提供 m 和 n 两个参数,方法中打印一个m*n 的*型矩形,并计算该矩形的面积, 将其作为方法返回值。在 main 方法中调用该方法,接收返回的面积值并打印。

public class Exer3Test {
      public static void main(String[] args){
    	  Exer3Test test=new Exer3Test();
    	  System.out.println(test.method(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;
      }
      
}

3.对象数组

package com.shang.exercise;

public class Student1Test {
      public static void main(String[] args){
    	  Student1[] stus=new Student1[20];
    	  for(int i=0;i<stus.length;i++){
    		  stus[i]=new Student1();//给数组元素赋值
    		  //给Student对象的属性赋值
    		  stus[i].number=i+1;
    		//年级[1,6]
    		  stus[i].state=(int)(Math.random()*(6-1+1)+1);
    		//成绩[0,100]
    		  stus[i].score=(int)(Math.random()*(100-0+1)+0);
    	  }
    	  Student1Test test=new Student1Test();
    	  test.print(stus);//遍历
    	  System.out.println("**************");
    	  //问题一:打印三年级(state=3)的学生信息
    	  test.searchState(stus, 3);
    	  System.out.println("**************");
    	 // 问题二:使用冒泡排序按学生成绩排序,并遍历所有学生信息
    	  test.sort(stus);
}
      //遍历Student1[]数组的操作
      public void print(Student1[] stus){
    	  for(int i=0;i<stus.length;i++){
 			 System.out.println(stus[i].info());
 		 }
      }
      //查找学生信息
      public void searchState(Student1[] stus,int state){
    	  for(int i=0;i<stus.length;i++){
    		  if(stus[i].state==state){
 			 System.out.println(stus[i].info());
 		 }
      }
      }
      //冒泡排序按学生成绩排序,并遍历输出
      public void sort(Student1[] stus){
    	  for(int i=0;i<stus.length-1;i++){
    		  for(int j=0;j<stus.length-1-i;j++){
    			  if(stus[j].score>stus[j+1].score){
    				  //如果需要换序,交换的是数组的元素:Student 对象
    				  Student1 temp=stus[j];
    				  stus[j+1]=stus[j];
    				  stus[j]=temp;
    			  }
    		  }
    	  }
     	 for(int i=0;i<stus.length;i++){
  			System.out.println(stus[i].info());
  		 }
      }   
}
class Student1{
	//属性
	int number;//学号
	int state;//年级
	int score;//成绩
	//显示学生信息
	public String info(){
		return "number="+number+" state="+state+" score="+score;
	}
	//问题一:打印三年级(state=3)的学生信息
	
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java的构造方法是一种特殊的方法,用于在创建对象时初始化对象的属性。每个都可以有一个或多个构造方法。如果没有显式定义构造方法,Java编译器会自动生一个默认构造方法。 当创建一个新的对象时,可以使用"new"关键字来调用构造方法并初始化对象。例如: ``` MyClass myObj = new MyClass(); ``` 在这个例子,"MyClass"是名,"myObj"是对象名,"new MyClass()"调用了MyClass的构造方法来创建新对象。 比较大小可以通过Java API的Comparable和Comparator接口来实现。如果使用Comparable接口,需要在实现compareTo()方法,在使用Collections.sort()或Arrays.sort()排序时会自动使用compareTo()方法进行比较。如果使用Comparator接口,可以在外部实现compare()方法,并传入sort方法进行比较。 ### 回答2: Java类和对象是面向对象编程的核心概念。当我们需要声明一个时,通常会定义一些属性和方法来描述所定义。然而,有时候我们需要在对象创建时初始化它的属性,这就需要用到构造方法了。 构造方法是一种特殊的方法,它与同名,没有返回值,并且在对象创建时执行。当我们创建一个对象时,Java会自动调用该类的构造方法来初始化它的属性。在Java,如果我们没有明确地定义构造方法,Java会默认提供一个无参构造方法,该方法不做任何操作。 构造方法通常用于初始化对象的属性。在Java,我们可以为定义多个构造方法,以便根据需要选择使用不同的构造方法。Java支持两种型的构造方法:有参构造方法和无参构造方法。 有参构造方法会传入参数,在创建对象时会将参数传递给该构造方法,然后用参数的值来初始化对象的属性。相对应的,无参构造方法不需要传入参数,它只是用来初始化对象的属性。 在Java,如果我们需要在不同条件下创建不同的对象时,可以使用不同的构造方法创建不同的对象。例如,如果我们需要按照年龄排列所有的学生,就可以定义一个按年龄排序的构造方法,然后按照年龄创建学生对象。如果我们需要按照姓名排列所有的学生,就可以定义一个按照姓名排序的构造方法,然后按照姓名创建学生对象。 对象的创建通常包括两个步骤:声明对象和分配内存。声明对象是指声明一个变量来存放对象的地址,分配内存是指在内存创建该对象。在Java,我们可以使用关键字“new”来创建对象。当我们使用“new”关键字创建一个对象时,Java会在内存分配一块内存来存放该对象,并返回该对象的地址。 比较大小时,我们可以使用“compareTo”方法来实现。在Java,我们可以为定义“compareTo”方法来比较不同对象的大小。该方法接受一个参数,表示要比较的另一个对象,然后根据需要来比较对象的大小。 综上所述,构造方法和对象创建Java重要的概念,它们为我们提供了不同的方法来初始化对象的属性和创建不同的对象。通过比较大小,我们可以实现对象的排序,为我们的程序提供更多的灵活性。 ### 回答3: Java是一种面向对象的编程语言,类和对象Java最基本的概念之一。是一种定义对象属性和方法的模板,而对象则是一个实例,拥有自身的属性和方法。在Java类和对象的关系可以通过构造方法和对象创建来实现。 构造方法是一种特殊的方法,它用于创建对象。在Java,每个都必须有一个构造方法,用于初始化对象的属性。构造方法的名称必须与名相同,它没有返回值型,包括参数列表和方法体。当一个对象被创建时,构造方法会被自动调用,用于初始化对象的属性。 对象创建是指通过new关键字来创建对象的过程。在Java,对象是由实例化而来的,使用new关键字来创建对象的语法如下: 名 对象名 = new 名(); 在这个语句名是要实例化的的名称,对象名是您想要创建的对象的名称。new关键字用于创建对象,并调用构造方法来初始化对象的属性。对象创建的结果是创建一个新的实例,这个实例可以使用定义的方法和属性进行操作。 在比较构造方法和对象创建的大小时,我们可以从以下几个方面来进行比较: 1.构造方法和对象创建的作用不同。构造方法用于初始化对象的属性,而对象创建则是通过调用构造方法来创建对象。 2.构造方法和对象创建的实现方式不同。构造方法是定义的一种方法,它用于初始化对象的属性。对象创建是使用new关键字来创建对象的过程。 3.构造方法和对象创建的数目不同。每个都必须有一个构造方法,用于初始化对象的属性。而对象创建的数目可以根据需要进行变化。 4.构造方法和对象创建的参数也不同。构造方法可以包含一些参数,用于设置对象的属性。而对象创建则只有名和对象名两个参数。 因此,综上所述,构造方法和对象创建都是Java实现类和对象之间关系的重要方式。它们各自有其独特的作用和实现方式,根据不同的需求和场景,可以选择使用它们来实现类和对象之间的关系。在程序设计,了解和掌握构造方法和对象创建的使用方法,对于编写高质量的Java程序非常重要。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值