前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Java程序设计基础》 第6章手记

《Java程序设计基础》 第6章手记

作者头像
Steve Wang
发布2018-02-05 16:36:54
5080
发布2018-02-05 16:36:54
举报
文章被收录于专栏:从流域到海域从流域到海域

本章主要内容: - 类的定义 - 成员变量和成员方法 - 类及成员的修饰符 - 对象的创建与使用 - 成员变量的访问与方法的调用 - 参数的传递 - 匿名对象

具体的概念在原书上,老师讲到的时候你应该在书上用笔画出来作为强调,这里只贴一些总结性的概念,请仔细查阅原书和ppt,记住它们。最后贴实验答案。

是一种抽象的概念;对象则是实际存在的属于该类的具体的个体。

对象是面向对象技术的核心,是构成系统的基本单元,所有面向对象的程序都是由对象组成。

是对象之上的抽象,它为属于该类的全部对象提供了统一的描述。类是一种抽象的数据类型,是对象的模板;对象则是类的实例化,是类的实例。

一般说来,是由数据成员函数成员封装而成的,其中数据成员表示类的属性,函数成员表示类的行为。从大的方面来看,你可以把看做是一种高级的数据类型,这种数据类型由属性行为组成。属性用来描述这个类的特征,行为描述这个类所具有的功能。

比如:

代码语言:javascript
复制
class People   //这是一个描述人的类
{
    int age,weight,height;   //这个类有4个变量(可以更多,这里做示例)
    String name;    //这四个变量描述了人的特征,名字、年龄、身高、体重

    void speak{     //人会说话,人具有这个行为
        System.out.print("Hello!");     //这里用打印来表征说话,人会说Hello
    }
}

定义类(类的一般结构、成员变量、成员方法)参见原书。

对象的创建与使用:

代码语言:javascript
复制
People person  = new People();  //我们用这个类创建了一个对象person,它具有People的全部特征
//请注意,创建对象必须遵循这个格式,就像你说英语“你好”必须说Hello而不是hallo,语法即约定的交流规则,你只有遵循语法,编译器或者解释器才能理解你到底在说什么。

对象名对象成员之间用”.“相连,这个点是引用的一种形式,你可以把小圆点看做是一个运算符,这个运算符执行的是从一个从一个对象中找到它的组成这个对象的某个成员。 例:person.name;表示从person这个对象中找到组成person的name变量。

在类定义内调用方法:

常规调用不在赘述,重点介绍this关键字。

this关键字强调调用的方法就在这个类中,即告诉编译器,我让你调用的功能就在这里,你不需要再去别的文件中找了。

格式:this.成员名

参数传递类似于C语言,但是没有指针,属于传什么类型就声明什么类型。

匿名对象: 使用条件 ①只需要一次调用, ②只是作为实参传递给一个方法,用完即止。

格式: new People().speak 即跳过了给对象起名字的步骤直接调用了People里的speak方法。

实验6-1\6-2\6-3原代码:

代码语言:javascript
复制
/*三次实验的代码写到一个文件中,这个文件可以实现三个实验的所有要求,你也可以把里面的两个类放在两个文件中*/

import java.util.*;     //声明用到的类库,放在两个文件中时,该声明应该跟在Test前,想一想原因?
class Student
{
    String name;
    int age;
    double i,j,k;     //i,j,k表示三科成绩,这里偷了懒,推荐chinese、math、english

    double total(){
        return i+j+k;
    }
    double average(){
        return (i+j+k)/3;
    }
}
public class Test
{
    public static void main(String[] args)
    {
        Scanner reader = new Scanner(System.in);
        Student s1 = new Student();
        Student s2 = new Student();

        System.out.println("输入学生名:");
        s1.name = reader.nextLine();
        System.out.println("年龄:");
        s1.age = reader.nextInt();
        System.out.println("各科成绩:");
        s1.i = reader.nextDouble();
        s1.j = reader.nextDouble();
        s1.k = reader.nextDouble();

        s2.name = "Steve";
        s2.age = 19;
        s2.i = 96.0;
        s2.j = 93.1;
        s2.k = 92.0;

        System.out.println("学生名:" +s1.name);
        System.out.println("总成绩:" +s1.total());
        System.out.println("平均成绩:" +s1.average());

        System.out.println("学生名:" +s2.name);
        System.out.println("总成绩:" +s2.total());
        System.out.println("平均成绩:" +s2.average());
    }
}

常见问题: 1.Scanner reader = new Scanner(System.in);忘记System.in。 2.Student s1 = new Student();忘记括号。 3.System.out.println(“平均成绩:” +s1.average());忘记average后面的括号。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年03月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档