201771010131孔维滢《面向对象程序设计(java)》第四周学习总结

 学习目标:

  1. 掌握类与对象的基础概念,理解类与对象的关系;
  2. 掌握对象与对象变量的关系;
  3. 掌握预定义类的基本使用方法,熟悉Math类、String类、math类、Scanner类、LocalDate类的常用API;
  4. 掌握用户自定义类的语法规则,包括实例域、静态域、构造器方法、更改器方法、访问器方法、静态方法、main方法、方法参数的定义要求;(重点、难点)
  5. 掌握对象的构造方法、定义方法及使用要求;(重点)
  6. 理解重载概念及用法;
  7. 掌握包的概念及用法;
  8. 了解文档注释技术;

第一部分:理论知识学习部分

    1.类:类是构造对象的模板或蓝图。由类构造对象的过程称为创建类的实例;

    2.对象:重点——①对象的行为②对象的状态③对象标识

    3.类与对象的关系:类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。

    4.使用预定义类Math类(数学库函数),math类(大整数、大浮点数),String类,Scanner类

    5.用户自定义类,实例域、静态域、构造器方法、更改器方法、访问器方法、静态方法、main方法、方法参数。

第二部分:实验四

    1、实验目的与要求

      (1) 理解用户自定义类的定义;

      (2) 掌握对象的声明;

      (3) 学会使用构造函数初始化对象;

      (4) 使用类属性与方法的使用掌握使用;

      (5) 掌握package和import语句的用途。

    2、实验内容和步骤 

      实验1 测试以下程序,掌握文件输入输出程序设计技术

import java.io.*;
import java.util.*;
public class FileWriteReadTest {
	public static void main(String[] args) throws IOException{
			//写入文件演示
		PrintWriter out = new PrintWriter("myfile.txt");
		out.println("姓名 高数 Java 数据结构 平均成绩 总成绩");
		out.println("张三 20 30 40 0 0");
		out.println("李四 50 60 70 0 0");
		out.close();//输出完毕,需要close
			//读入文件演示
		Scanner in = new Scanner(new File("myfile.txt"));//为myfile.txt这个File创建一个扫描器in
		int number = 1;//行号
		System.out.println(in.nextLine());
		while(in.hasNextLine()){//判断扫描器是否还有下一行未读取,该循环把文件的每一行都读出
			String line = in.nextLine();//读出myfile.txt的下一行
			System.out.print("第"+(++number)+"行的内容: ");			
			Scanner linescanner = new Scanner(line);//行内容建立扫描器
			linescanner.useDelimiter(" ");//使用空格作为分隔符
			String name = linescanner.next();
			String math = linescanner.next();
			String java = linescanner.next();
			String ds = linescanner.next();
			String avg = linescanner.next();
			String total = linescanner.next();
			System.out.println("name="+name+"  math="+math+"  java="+java+"  ds="+ds+"  avg"+avg+"  total="+total);
		}
		in.close();//读入完毕,最后需要对其进行close。
	}	
}

  实验结果:

      实验2 导入第4章示例程序并测试。

        测试程序1:

public class EmployeeTest {
           public static void main(String[] args)
           {
              // fill the staff array with three Employee objects
              Employee[] staff = new Employee[3];

              staff[0] = new Employee("Carl Cracker", 75000, 1987, 12, 15);
              staff[1] = new Employee("Harry Hacker", 50000, 1989, 10, 1);
              staff[2] = new Employee("Tony Tester", 40000, 1990, 3, 15);

              // raise everyone's salary by 5%
              for (Employee e : staff)
                 e.raiseSalary(5);

              // print out information about all Employee objects
              for (Employee e : staff)
                 System.out.println("name=" + e.getName() + ",salary=" + e.getSalary() + ",hireDay="
                       + e.getHireDay());
           }
}

  

import java.time.LocalDate;

class Employee
{
   private String name;
   private double salary;
   private LocalDate hireDay;

   public Employee(String n, double s, int year, int month, int day)
   {
      name = n;
      salary = s;
      hireDay = LocalDate.of(year, month, day);
   }

   public String getName()
   {
      return name;
   }

   public double getSalary()
   {
      return salary;
   }

   public LocalDate getHireDay()
   {
      return hireDay;
   }

   public void raiseSalary(double byPercent)
   {
      double raise = salary * byPercent / 100;
      salary += raise;
   }
}

  结果如下:

import java.util.Scanner;

public class StudentTest
{
   public static void main(String[] args)
   {
      
      Students[] staff = new Students[3];
      System.out.println("请输入学生信息:");
	  @SuppressWarnings("resource")
	  Scanner in = new Scanner(System.in); 
      for(int i=0;i<staff.length;i++) {
          staff[i]=new Students(in.next(),in.next(),in.next());
      }
      System.out.println("name"+" "+"sex"+" "+" "+"javascore");

      for (Students e : staff)
         System.out.println(e.getName() +"    "+e.getSex()+"         "+e.getJavaScore()+" ");
   }
}

class Students
{
   private String name;
   private String sex;
   private String javascore;

   public Students(String n, String s, String j)
   {
      name = n;
      sex = s;
      javascore =j;
   }

   public String getName()
   {
      return name;
   }

   public String getSex()
   {
      return sex;
   }

   public String getJavaScore()
   {
      return javascore;
   }

}

  结果如下:

        测试程序2:

          测试程序3:

      测试程序4:

       测试程序5:

      实验3

import java.util.*;

public class RectangleCircle {

	@SuppressWarnings("resource")
	public static void main(String[] args) {
	        Scanner price=new Scanner (System.in);
	        System.out.println("输入矩形的长、宽:");
	        double x=price.nextInt();
	        double y=price.nextInt();
	        System.out.println("矩形周长="+(x+y)*2);
	        System.out.println("矩形面积="+(x*y));
	        
	        System.out.println("输入圆的半径:");
	        double r=price.nextInt();
	        double π = 3.14;
			System.out.println("圆周长="+(2*π*r));
	        System.out.println("圆面积="+(r*r*π));
	        
	        System.out.println("周长和="+((x+y)*2+2*π*r));
	        System.out.println("面积和="+((x*y)+r*r*π));
	
	}

}

  结果如下:

总结:

通过本周的学习,我学习到了面向对象程序设计(OOP)的概论,之前总是听老师说Java是一门面向对象的语言,我也终于知道了什么是类,什么是对象,了解了对象的三个特征:对象的行为,对象的状态,对象标识。掌握了如何使用预定义类的基本,和构造并初始化对象。课上我学习到了Java类库中的LocalDate类,让我对类有了更深的认识。但是我对用户自定义类的内容了解的还不够,对于第四章我还需要更多的学习。

 

猜你喜欢

转载自www.cnblogs.com/Weiron/p/9703563.html