• 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类,让我对类有了更深的认识。但是我对用户自定义类的内容了解的还不够,对于第四章我还需要更多的学习。

     
  • 相关阅读:
    2019.04.24笔记
    转:浅谈SimpleDateFormat的线程安全问题
    H5和CSS
    Android Studio中 no module 问题,解决方法
    JS中,跨域调用(本地)另一个项目的方法
    IDEA中找不到spring的配置文件,或者不存在某个目录(比如没有src 目录)
    IDEA导入 Eclipse项目
    更新Android Studio,提示后直接点更新即可。gradle 两种更新方法,我用的第二种:手动添加gradle
    Android Studio的HAXM不支持虚拟机
    小米手机驱动程序安装教程
  • 原文地址:https://www.cnblogs.com/Weiron/p/9703563.html
Copyright © 2020-2023  润新知