5.7第十周上机练习


1、请按照以下要求设计一个学生类Student,并进行测试。
要求如下:
1)Student类中包含姓名、成绩两个属性
2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值.
3)Student类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数分别为姓名和成绩属性赋值
4)在测试类中创建两个Student对象,一个使用无参的构造方法,然后调用方法给姓名和成绩赋值,一个使用有参的构 造方法,在构造方法中给姓名和成绩赋值

 1 package text;
 2 
 3 public class Student {
 4     String name=new String("学生还未命名"); //姓名
 5     int score;                        //成绩
 6     public Student(){  //无参构造方法
 7     }
 8   public Student(String nam,int score){  //有参构造方法
 9       this.name=nam;
10       this.score=score;
11 }
12   public void set(String nam,int score){  //设置函数
13       this.name=nam;
14       this.score=score;
15   }
16   public void get(){                     //获取函数
17       System.out.println("姓名:"+name);
18       System.out.println("成绩:"+score);
19   }
20 }测试
21 package text;
22 
23 public class Student1 {
24     public static void main(String[] args) {
25         // TODO Auto-generated method stub
26     Student s=new Student();
27     s.set("张三",79);
28     s.get();
29     Student s1=new Student("赵丽",98);
30     s1.get();
31     }
32 }


2、请编写一个程序,该程序由两个类组成,一个Person类,一个Test类。在Person类中定义一个无参构造方法,里面 输出一句话:”无参的构造方法被调用了...”。并在测试类中进行测试。

 1 package text;
 2 
 3 public class Person {
 4 
 5     public void speak() {
 6         System.out.println("无参的构造方法被调用");
 7     }
 8 }
 9 测试
10 package text;
11 
12 public class Test {
13 
14     public static void main(String[] args) {
15         // TODO Auto-generated method stub
16         Person p = new Person();
17         p.speak();
18     }
19 
20 }


3. 使用java类描述一个车类,车都具备名字、颜色两个属性,还具备跑的功能。 请设计一个汽车类Car,该类中包含 两个属性姓名(name)、颜色(color),一个用于描述汽车跑的run()方法。

 1 package text;
 2 
 3   public class Java {
 4         String name;
 5         String color;
 6     public void run(){
 7     System.out.println("车的名字:"+name+"车的颜色:"+color);
 8       }
 9 }
10 测试
11 package text;
12 
13 public class Car {
14 
15     public static void main(String[] args) {
16         // TODO Auto-generated method stub
17         Java j = new Java();
18           j.name = "奔驰";
19           j.color = "白色";
20           j.run();
21          }
22 }


4. 编写一个类,类中定义一个静态方法,用于求两个整数的和。 请按照以下要求设计一个测试类Demo,并进行测试。  要求如下: 
  1)Demo类中有一个静态方法get(int a,int b)该方法用户返回参数a、b两个整数的和; 
  2)在main()方法中调用get方法并输出计算结果。

 1 package text;
 2 
 3 public class Demo {
 4     public static int get(int a, int b) {
 5         int c = a + b;
 6         return c;
 7     }
 8 }
 9 测试
10 package text;
11 
12 public class Person {
13 
14     public static void main(String[] args) {
15         int x = Demo.get(5, 8);
16         System.out.println("结果为:" + x);
17     }
18 }


5.说一下什么是封装, 使用封装的好处。什么是get,set访问器

• 所谓封装是把对象的属性和行为结合在一个独立的系统单

位内部

尽可能隐蔽对象的内部细节,只向外部提供接口

 降低对象间的耦合度

• 使用封装的好处:

– 使对象能够集中而完整地描述并对应一个具体事物

– 体现了事物的相对独立性,使对象外部不能随意存取

对象的内部数据

-减少耦合

-可以对成员进行更精确的控制

-加强程式码的安全性

     set()是给属性赋值的,get()是取得属性值的 被设置和存取的属性一般是私有 主要是起到封装的作用

   只带有 get 访问器的属性称为只读属性。无法对只读属性赋值。 只带有 set 访问器的属性称为只写属性。只写属性除作为赋值的目标外,无法对其进行引用。 同时带有 get 和 set 访问器的属性为读写属性。 在属性声明中,get 和 set 访问器都必须在属性体的内部声明。使用 get 访问器更改对象的状态是一种错误的编程样式

原文地址:https://www.cnblogs.com/gwz-1314/p/12842479.html