Java头歌 2.3 类和对象-练习3

这篇具有很好参考价值的文章主要介绍了Java头歌 2.3 类和对象-练习3。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第1关:类的定义和使用 - 修院子

任务描述

小明家要修一个院子,小明测量了院子的长和宽之后想编写一个程序告诉他院子的周长的面积,请你来帮帮他。

小明家要修一个院子,小明测量了院子的长和宽之后想编写一个程序告诉他院子的,头歌Java,Java类与对象,Java实训,java,开发语言

相关知识

Java是面向对象的编程语言,所谓面向对象,就是指一个Java程序可以认为是一系列对象的集合,这些对象通过调用彼此的方法来协同工作。

Java中的对象

在我们生活的现实世界中,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。例如,一条狗是一个对象,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。

对比现实对象和软件对象,它们之间十分相似。软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。

Java中的类

类是一个模板,它描述一类对象的行为和状态。

通过下面一个简单的类来理解下Java中类的定义:

 
  1. public class Dog { //类名首字母需大写,这是语法规范
  2. void barking() {
  3. }
  4. void eating() {
  5. }
  6. void sleeping() {
  7. }
  8. String name;
  9. String breed;
  10. int age;
  11. }

在上面这个例子中,name、breed、age是狗的状态,它们通过变量来体现,一个类可以包含以下类型变量:

  • 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
  • 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
  • 类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。

由此可见,上述的name、breed、age属于成员变量。

一个类可以拥有多个方法,在上面的例子中:barking()、eating()和sleeping()都是Dog类的方法。

类的访问修饰符

关于Java修饰符之后会更加详细的阐述,在此先简单介绍一下访问修饰符。

访问修饰符可以用来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。

  • 默认的,也称为 default,在同一包内可见,不使用任何修饰符。
  • 私有的,以 private 修饰符指定,在同一类内可见。
  • 共有的,以 public 修饰符指定,对所有类可见。
  • 受保护的,以 protected 修饰符指定,对同一包内的类和所有子类可见。

一般的,我们将类和类的成员方法定义为 public,将类的成员变量定义为 private。因为我们不希望用户能直接看到类的成员变量,这部分数据对外界应该是隐藏的;我们希望的是用户通过访问类的成员方法来对类进行操作,类的成员方法就相当于类的对外接口,只有通过这些接口才能访问和使用类。

这就是Java语言特性的封装性,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户无需知道(当然也无从知道)隐藏起来的细节,但可以通过类对外提供的接口,也就是类的成员方法,来与类的成员变量进行交互。

类的构造方法

每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。

在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名。

一个类可以有多个构造方法,不同的构造方法的参数必须各不相同。这是因为在方法重载中,Java区分不同的方法的依据就是各方法的参数。

下面是一个构造方法示例:

 
  1. public class Dog {
  2. public Dog() {
  3. }
  4. public Dog(String name) { //该构造方法含有一个String类型参数name,与上面的构造方法参数不同
  5. }
  6. }
类的this关键字

类的this关键字用于区分当方法的参数变量与类的成员变量重名的情况,请看示例:

 
  1. public class Dog {
  2. public Dog(String name) {
  3. this.name = name; //方法的参数变量与类的成员变量都叫name,故使用this关键字加以区分,this.name表示类的成员变量name
  4. }
  5. private String name;
  6. }

编程要求

本关的编程任务是补全右侧代码片段中的Yard类,具体要求如下:

  • 使用构造方法初始化边长。
  • 设计成员方法getPerimeter()getAcreage(),运算并返回周长和面积。

评测说明

平台将自动编译补全后的代码,并生成若干组测试数据,接着根据程序的输出判断程序是否正确。

测试文件YardBuilding.java代码框架如下:

 
  1. import java.util.Scanner;
  2. public class YardBuilding {
  3. public static void main(String[] args) {
  4. Scanner scanner = new Scanner(System.in);
  5. int length = scanner.nextInt();
  6. int width = scanner.nextInt();
  7. Yard yard = new Yard(length, width);
  8. System.out.print(String.valueOf(yard.getPerimeter()) + ' ' + String.valueOf(yard.getAcreage()));
  9. }
  10. }

请注意:Yard.java文件中类的成员方法的名称注意跟测试文件YardBuilding.java中的一致,即getPerimetergetAcreage

以下是测试样例:

测试输入: 3 4 预期输出: 14.0 12.0

package step1;

public class Yard {
    Yard(double length,double width){
        this.length=length;
        this.width=width;
    }
    public double getPerimeter(){
        return(length+width)*2;
    }
    public double getAcreage(){
        return length*width;
    }
    private double length;
    private double width;

}

第2关:对象实际操作 - 自我介绍

任务描述

现代社会,单位面试都会要求做一个自我介绍,介绍个人的名字、年龄、学历、职位等等。这可让某些人犯了难,聪明的你可以帮助他们写一个可以自我介绍的程序么?

小明家要修一个院子,小明测量了院子的长和宽之后想编写一个程序告诉他院子的,头歌Java,Java类与对象,Java实训,java,开发语言

相关知识

对象实际操作
创建对象

对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:

  • 声明:声明一个对象,包括对象名称和对象类型。
  • 实例化:是有关键字new来创建一个对象。
  • 初始化:使用new创建对象时,会调用构造方法初始化对象。
访问类的成员方法

通过已创建的对象来访问类的成员方法,如下所示:

 
  1. /* 实例化对象 */
  2. Class Object = new Constructor();
  3. /* 访问类中的方法 */
  4. Object.MethodName();

注:若使用 static 将类的成员方法定义为静态方法,则可以直接通过类名访问,这一点之后再详细阐述。

样例

下面是一个创建对象的例子:

 
  1. public class Dog {
  2. public Dog(String name) {
  3. this.name = name;
  4. }
  5. public void getName() { //打印小狗的名字
  6. System.out.println("小狗的名字是:" + name);
  7. }
  8. public void setAge(int age) { //设置小狗的年龄
  9. this.age = age;
  10. }
  11. public int getAge() { //获取小狗的年龄
  12. return age;
  13. }
  14. private String name;
  15. private int age;
  16. public static void main(String []args) {
  17. // 下面的语句将创建一个Dog类的对象,名为myDog
  18. Dog myDog = new Dog("bob"); //Dog("bob")表示访问构造方法,将"bob"传递给构造方法的参数name
  19. myDog.getName(); //访问对象myDog的成员方法getName()
  20. myDog.setAge(2); //访问对象myDog的成员方法setAge()
  21. System.out.println("小狗的年龄为:" + myDog.getAge);
  22. }
  23. }

编译并运行上面的程序,会打印出下面的结果:

 
  1. 小狗的名字是:bob
  2. 小狗的年龄为:2

编程要求

本关的编程任务是补全右侧代码片段中BeginEnd中间的代码,具体要求如下:

  • 声明一个person对象并实例化,利用类中已经编写好的方法传入相关的属性,即name(姓名)、age(年龄)、education(学历)、position(职位);
  • 调用类的方法introduction()输出自我介绍的一句话。

评测说明

平台将自动编译补全后的代码,并生成若干组测试数据,接着根据程序的输出判断程序是否正确。

以下是测试样例:

测试输入: 张三 35 博士 讲师 预期输出: 大家好!我是张三,我今年35岁,博士学历,目前职位是讲师

package step2;

import java.util.Scanner;

public class SelfIntroduction {
    public void setName(String name) {
        this.name = name;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void setEducation(String education) {
        this.education = education;
    }
    public void setPosition(String position) {
        this.position = position;
    }
    public void introduction() {
        System.out.println("大家好!我是" + name + ",我今年" + age + "岁," 
                           + education + "学历," + "目前职位是" + position);
    }
    private String name;
    private int age;
    private String education;
    private String position;

    public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
        String name = scanner.next();
		int age = scanner.nextInt();
		String education = scanner.next();
		String position = scanner.next();

        /********** Begin *********/
        SelfIntroduction person = new SelfIntroduction();
        person.setName(name);
        person.setAge(age);
        person.setEducation(education);
        person.setPosition(position);
        person.introduction();
        
        /********** End *********/
    }
}

机会是极难得的,但他具备三大成功的条件,那就是“像鹿一般会跑的腿,逛马路的闲功夫,和犹太人那样的耐性。 —— 巴尔扎克 开始你的任务吧,祝你成功!文章来源地址https://www.toymoban.com/news/detail-775392.html

到了这里,关于Java头歌 2.3 类和对象-练习3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Educoder/头歌JAVA实训——JAVA循环与分支语句编程练习

    为了完成本关任务,你需要掌握:1、数组的定义; 2、循环语句的熟练使用。 实现思路: 可以通过三层循环的方式,第一层循环用于控制百位数的变化,第二层循环用于控制十位数的变化,第三层循环用于控制个位数的变化。 由于题目要求百位数、十位数、个位数互不重复

    2023年04月08日
    浏览(76)
  • Java中的System类和一些练习

    ​​​​​​​ 目录 常用方法: 第一个方法: 第二个方法: 第三个方法: 方法 三 的拓展: System 和 Math 一样,也是一个工具类,提供了一些与系统相关的方法 返回当前时间毫秒值,并且以 1970 年 1 月 1 日 08:00:00 作为计算机中的时间原点(含时差); 1 秒=1000 毫秒 那

    2024年01月18日
    浏览(39)
  • Educoder/头歌JAVA——JAVA面向对象:String类

    String类的对象的创建 可以按照创建类的对象的一般方法来创建 String 类的对象: String string = new String(); 也可以直接在创建对象时指定字符串内容: String string1 = \\\"Hello World\\\"; //string1字符串内容为\\\"Hello World\\\" String string2 = \\\"\\\"; //string2字符串内容为空 length()方法 String 类中的 length() 方

    2024年02月03日
    浏览(62)
  • 【Java】类和对象详解

    面向对象(Object-oriented)是一种程序设计的方法和编程范式,它以对象作为程序的基本单位,通过封装、继承、多态等概念来组织和实现程序逻辑。面向对象的编程思想强调将问题分解为对象的集合,每个对象具有自己的状态(属性)和行为(方法),并通过相互之间的消息

    2024年02月06日
    浏览(45)
  • 【Java】类和对象,封装

    目录 1.类和对象的定义  2.new 3.this引用 4.对象的构造及初始化 5.封装 //包的概念 //如何访问 6.static成员 7.代码块 8.对象的打印 对象:Java中一切皆对象。 类:一般情况下一个Java文件一个类,每一个类对应一个字节码文件(*.class)        1)字段 / 属性 / 成员变量:定

    2024年02月02日
    浏览(43)
  • Java基础——类和对象

    目录 一、类和对象的基本概念 二、类与对象的定义与使用 1.创建类的语法: 2. 创建具体的对象:  3.范例(创建一个Person 类的对象)  三、static   (一)static修饰属性(类属性、类变量) (二)static修饰方法(类方法、工具方法) (三)static修饰代码块(静态代

    2024年02月02日
    浏览(41)
  • 【JAVA】类和对象

    作者主页:paper jie的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将javaSE基础知识一网打尽,希望可以帮到读者们哦。 其他专栏

    2024年02月14日
    浏览(34)
  • Java宝典-类和对象

    Java宝典更新啦!今天我们学习类和对象 在介绍类和对象之前,我们先了解一下什么是面向对象 面向对象编程又称Object Oriented Programming,简称OOP,我们听说过的Java,c++都是一门面向对象编程语言.面向过程更注重一件事完成的过程,而面向对象往往会省略一些细节. 举个例子: 如何把大

    2024年03月11日
    浏览(56)
  • Java中的类和对象

    在学习java语言的时候,经常听说java是一门 面向对象 的语言;在java里面也有 一切皆对象 这样的说法。那么到底什么是类,什么又是对象呢? 以洗衣服为例,给大家介绍面向对象和面向过程 1.1.1面向过程 我们传统的洗衣服得经历一下步骤: 注重的是洗衣服的过程 1.1.2面向对

    2024年04月28日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包