• java实验二


    任务一.静态变量

    1.源代码

    class StaticDemo{
    static int x;
    static int y;
    static public int getX() {
    return x;
    }
    static public void setX(int newX) {
    x=newX;
    }
    public void setY(int newY) {
    y=newY;
    }
    public static int getY() {
    return y;
    }
    }
    public class ShowDemo{
    public static void main(String[] args) {
    System.out.println("静态变量 x="+StaticDemo.getX());
    System.out.println("静态变量 y="+StaticDemo.getY());

    StaticDemo a=new StaticDemo();
    StaticDemo b=new StaticDemo();
    a.setX(1);
    a.setY(2);
    b.setX(3);
    b.setY(4);
    System.out.println("静态变量 a.x="+a.getX());
    System.out.println("实例变量 a.y="+a.getY());
    System.out.println("静态变量 a.x="+b.getX());
    System.out.println("实例变量 a.y="+a.getY());
    }

    }

    2.结果截图

    3.原因分析

    4.静态变量和实例变量的区别

     静态变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象
    二.构造方法

    1.源代码

    class Trangle
    {
    double sideA,sideB,sideC,area,length;
    boolean boo;
    public Trangle(double a,double b,double c)
    {
    sideA=a;sideB=b;sideC=c; // 参数a, b, c分别赋值给sideA, sideB, sideC
    if(a+b>c&a+c>b&b+c>a) //a, b, c构成三角形的条件表达式
    {
    boo=true;// 给boo赋值
    }
    else
    {
    boo=false;// 给boo赋值
    }
    }
    double getLength()
    {
    return sideA+sideB+sideC;// 方法体,要求计算出length的值并返回
    }
    public double getArea()
    {
    if(boo)
    {
    double p=(sideA+sideB+sideC)/2.0;
    area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ;
    return area;
    }
    else
    {
    System.out.println("不是一个三角形,不能计算面积");
    return 0;
    }
    }
    public void setABC(double a,double b,double c)
    {
    sideA=a;sideB=b;sideC=c;// 参数a, b, c分别赋值给sideA, sideB, sideC
    if(a+b>c&a+c>b&b+c>a)//三角形条件表达式
    {
    boo=true;//给boo赋值。
    }
    else
    {
    boo=false;// 给boo赋值
    }}
    }
    class Lader
    {
    double above,bottom,height,area;
    Lader(double a,double b,double h)
    {
    above=a;bottom =b;height =h; // 方法体
    }
    double getArea( )
    {
    return (above+bottom)*height/2;// 方法体,,要求计算出area返回
    }
    }
    class Circle
    {
    double radius,area;
    Circle(double r)
    {
    radius =r;// 方法体
    }
    double getArea( )
    {
    return 3.1415926*radius*radius;// 方法体,要求计算出area返回
    }
    double getLength( )
    {
    return 2*3.1415926*radius;// getArea方法体的代码,要求计算出length返回
    }
    void setRadius(double newRadius)
    {
    radius=newRadius;
    }
    double getRadius( )
    {
    return radius;
    }
    }
    public class AreaAndLength
    {
    public static void main(String args[ ])
    {
    double length,area;
    Circle circle=null;
    Trangle trangle;
    Lader lader;
    circle=new Circle(10); //创建对象circle
    trangle=new Trangle(5,8,10); //创建对象trangle
    lader=new Lader(5,8,10); //创建对象lader
    length=circle.getLength();
    System.out.println("圆的周长:"+length); // circle调用方法返回周长并赋值给length
    area=circle.getArea();
    System.out.println("圆的面积:"+area); // circle调用方法返回面积并赋值给area
    length=trangle.getLength();
    System.out.println("三角形的周长:"+length); // trangle调用方法返回周长并赋值给length
    area=trangle.getArea();
    System.out.println("三角形的面积:"+area); // trangle调用方法返回面积并赋值给area
    area=lader.getArea();
    System.out.println("梯形的面积:"+area); // lader调用方法返回面积并赋值给area
    trangle=new Trangle(12,34,1); // trangle调用方法返修改三个边的代码,要求将三个边修改为12,34,1
    area=trangle.getArea();
    System.out.println("三角形的面积:"+area);// trangle调用方法返回面积并赋值给area
    length=trangle.getLength();
    System.out.println("三角形的周长:"+length); // trangle调用方法返回周长并赋值给length
    }
    }

    2.结果截图

    3.构造方法的使用说构造方法是一种特殊的方法,与一般的方法不同是:

    (1)构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。

    (2)构造方法的调用是在创建一个对象时使用new操作进行的。造方法的作用是初始化对象。

    (3)不能被staticfinalsynchronizedabstractnative修饰。构造方法不能被子类继承。构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。Java中,任何变量在被使用前都必须先设置初值.Java提供了为类的成员变量赋初值的专门功能:构造方法(constructor)构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面:(1)构造方法名与类名相同.  (2)

    构造方法不返回任何值
    ,
    也没有返回类型
    (3)
    每个类可以有零个或多个构造方法
    (4)
    构造方法在创建对象时自动执行
    三.验证是否为闰年
    1.设计思想
    判断所赋值年份是否为闰年,输出结果
    2.程序流程图
    3.源代码

    class Exercise2010
    {
    int year;
    public void set (int y)
    {
    year=y;
    }
    public boolean isleap()
    {
    if ((year%4==0 && year%100!=0) || (year%400==0)) return true;
    else
    return false;
    }
    }

    public class TestExercise2010
    {
    public static void main(String [] args)
    {
    Exercise2010 exer = new Exercise2010();
    exer.set(2017);
    boolean flag=exer. isleap();
    if (flag == true)
    System.out.println(2017 +"是闰年 ");
    else
    System.out.println(2017 +"不是闰年 ");
    }
    }

    4.结果截图

    四.Student类设计

    1.源代码

    package student;
    public class student
    {
    private String name;
    private int age;
    private boolean sex;
    private double score;
    //get/set方法用来获取/设置学生实例对象的信息
    public String getname()
    {
    return name;
    }
    public void setname(String name)
    {
    this.name=name;
    }
    public int age(){
    return age;
    }
    public void setage(int age)
    {
    this.age=age;
    }
    public boolean getsex()
    {
    return sex;
    }
    public void setsex(boolean sex)
    {
    this.sex=sex;
    }
    public double getscore()
    {
    return score;
    }
    public void setscore(double score)
    {
    this.score=score;
    }

    static boolean woman=true;
    static boolean man=false;

    public static void main(String[] args)
    {
    student me= new student();//对学生类实例化
    //对学生信息赋值
    me.setname("邢全阳");
    me.setage(19);
    me.setsex(man);
    me.setscore(100.0);
    //输出学生信息
    System.out.println("姓名:"+me.getname()+" 年龄:"+me.age()
    +" 性别:"+me.getsex()+" 成绩:"+me.getscore()
    );
    }
    }

     2.结果截图

    3概念说明

    (1)类 
      类是现实世界中实体的形式化描述,类将该实体的数据和函数封装在一起。类的数据也叫属性、状态或特征,它表现类静态的一面。类的函数也叫功能、操作或服务,它表现类动态的一面。   Joe是一名教师,也就拥有了教师的特征,这个特征就是教师这个类所特有的,具体而言,共同的状态通过属性表现出来,共同的行为通过操作表现出来。
    (2)对象
      对象是由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个封装,是构成系统的基本单位,采用计算机语言描述,对象是由一组属性和对这组属性进行操作的一组服务构成。 
      对象包含三个基本要素,分别是对象标识、对象状态和对象行为。

      每一个对象必须有一个名字以区别于其他对象,这就是对象标识;状态用来描述对象的某些特征;对象行为用来封装对象所拥有的业务操作。 
      举例说明,对于教师Joe而言,包含性别、年龄、职位等个人状态信息,同时还具有授课的行为特征,那么Joe就是封装后的一个典型对象。
    (3)实例对象中具体的事物
    (4)属性
    类的一些特点
    (5)服务
     Java 消息服务(Java Message Service,JMS)应用程序接口是一个Java 平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java 消息服务是一个与具体平台无关的 API,绝大多数 MOM 提供商都对 JMS 提供支持。Java 消息服务的规范包括两种消息模式,点对点和发布者/订阅者。许多提供商支持这一通用框架因此,程序员可以在他们的分布式软件中实现面向消息的操作,这些操作将具有不同面向消息中间件产品的可移植性。Java 消息服务支持同步和异步的消息处理,在某些场景下,异步消息是必要的;在其他场景下,异步消息比同步消息操作更加便利。Java 消息服务支持面向事件的方法接收消息,事件驱动的程序设计现在被广泛认为是一种富有成效的程序设计范例,程序员们都相当熟悉。在应用系统开发时,Java 消息服务可以推迟选择面对消息中间件产品,也可以在不同的面对消息中间件切换。
    (6)封装
      封装是将相关的概念组成一个单元,然后通过一个名称来引用它'。面向对象封装是将数据和基于数据的操作封装成一个整体对象,对数据的访问或修改只能通过对象对外提供的接口进行。 
      对于银行账户类而言,有取款和存款的行为特征,但实现细节对于客户而言并不可见,所以在进行ATM提款交易的过程中,我们并不知道交易如何进行,对应账户是如何保存状态的,这就体现了对象的封装。 
    (7)抽象数据类型
     抽象数据类型(Abstract Data Type 简称ADT)是指一个数学模型以及定义在此数学模型上的一组操作。抽象数据类型需要通过固有数据类型(高级编程语言中已实现的数据类型)来实现。抽象数据类型是与表示无关的数据类型,是一个数据模型及定义在该模型上的一组运算。对一个抽象数据类型进行定义时,必须给出它的名字及各运算的运算符名,即函数名,并且规定这些函数的参数性质。一旦定义了一个抽象数据类型及具体实现,程序设计中就可以像使用基本数据类型那样,十分方便地使用抽象数据类型。
    (8)成员变量
     成员变量又称为成员属性,它是描述对象状态的数据,是类中很重要的组成成分。本节详细讨论如何来定义成员变量、成员变量的访问权限,以及静态成员变量与实例成员变量之间的区别。
     
    (9)成员方法
     成员方法描述对象所具有的功能或操作,反映对象的行为,是具有某种相对独立功能的程序模块。它与过去所说的子程序、函数等概念相当。一个类或对象可以有多个成员方法,对象通过执行它的成员方法对传来的消息作出响应,完成特定的功能。成员方法一旦被定义,便可在不同的程序段中多次调用,故可增强程序结构的清晰度,提高编程效率。比如,如果把电视机看作一个类,则播放电视节目可以作为这个类的一个成员方法。该方法用来提供播放电视的功能。
  • 相关阅读:
    Diophantus of Alexandria(唯一分解定理)
    K
    HDU-多校2-Everything Is Generated In Equal Probability(公式+逆元)
    IOS学习经验总结
    ios编译出错:UIButton.h' has been modified since the precompiled header UIKit.pcm' was built
    ios学习--详解IPhone动画效果类型及实现方法
    iOS常用动画 类封装
    iOS学习之自定义弹出UIPickerView或UIDatePicker(动画效果)
    iOS学习之Xcode 的Debug技巧
    iOS学习之Map,定位,标记位置的使用
  • 原文地址:https://www.cnblogs.com/xqyfight/p/7710049.html
Copyright © 2020-2023  润新知