头歌平台Java实验:Java面向对象 - 封装、继承和多态

头歌平台Java实验:Java面向对象 - 封装、继承和多态

以下是个人的答案,欢迎指错以及交流

第1关:什么是封装,如何使用封装

封装:

就是隐藏对象的属性和实现细节,仅对外提供公共访问方式。

对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作。使用封装有四大好处:

  • 良好的封装能够减少耦合。
  • 类内部的结构可以自由修改。
  • 可以对成员进行更精确的控制。
  • 隐藏信息,实现细节。

封装把一个对象的属性私有化,同时提供一些可以被外界访问属性的方法,如果不想被外界访问,我们大可不必提供方法给外界访问。但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码:

  • 声明一个Person类,私有化属性nameage,并将字段封装起来;

  • Person类中定义一个talk()方法,打印姓名和年龄信息;

  • main方法中声明并实例化一Person对象p,给p中的属性赋值,调用talk()方法打印 我是:张三,今年:18岁

测试说明

测试输入: 预期输出: 我是:张三,今年:18岁

package case1;

public class TestPersonDemo {
	public static void main(String[] args) {
		/********* begin *********/
		// 声明并实例化一Person对象p
       Person p = new Person();
       p.setName("张三");
       p.setAge(18);
       p.talk();
		// 给p中的属性赋值

		// 调用Person类中的talk()方法

		/********* end *********/

	}
}

// 在这里定义Person类
class Person {
	/********* begin *********/
//封装操作,将需要封装的用private修饰,用get与set对外提供方法访问
//在编辑器中,可右键点击Generate选择进行操作
   private String name;
   private int age;
   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 void talk(){
       System.out.println("我是:"+getName()+','+"今年:"+getAge()+"岁");
   }
	/********* end *********/
}

第2关:什么是继承,怎样使用继承

继承的关键字:extends

  • 子类拥有父类非private的属性和方法;

  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展;

  • 子类可以用自己的方式实现父类的方法;

  • Java中只允许单继承,而不允许多重继承,也就是说一个子类只能有一个父类,但是Java中却允许多层继承,多层继承就是,例如类C继承类B,类B继承类A,所以按照关系就是类A是类B的父类,类B是类C的父类,这是Java继承区别于C++继承的一个特性;

  • 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系)。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码:

  • 声明一个Animal类,将属性nameage封装起来,提供对外的公共访问方法;

  • 声明一个Cat类和Dog类,都继承Animal类,分别定义各自的voice方法和eat方法;

  • main方法中分别实例化一个Cat对象和Dog对象,设置各自的属性并调用这两个方法,再打印出名字和年龄信息;

  • 具体具体输出要求请看测试说明。

测试说明

测试输入: 预期输出: 大花猫喵喵叫 大花猫吃鱼 大花猫6岁 大黑狗汪汪叫 大黑狗吃骨头 大黑狗8岁

packag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静琳同学在学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值