Java_类与程序的基本结构+参数传值

**1、
**一个java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若干个源文件中
**2、**参数—局部变量–无默认值
(1)基本数据类型参数的传值
(2)引用类型参数的传值(数组、对象、接口)
(3)可变参数:

public void f(int ...x)//合法,从第一个至最后一个参数都是int型
public viod g(double a,int...x)//合法,第一个参数是int型,第二个至最后一个参数是int型
public void method(iny ...x,int y)//不合法,因为可变参数x代表的最后一个参数不是method方法的最后一个参数

小例子:
输入数值求和

import java.util.Scanner;
public class Test2 {
    public static void main(String args[]){
        Scanner reader=new Scanner(System.in);
        Sum sum=new Sum();
        System.out.println("请输入你想要求和的分数:");

        while(reader.hasNextInt()) {///输入的是int 类型时才会进行while循环
            sum.Add(reader.nextInt());

    }
     System.out.println(sum.sum);
    }
}
class Sum{
    int sum=0;//需要是全局变量!!!!
    int  Add(int ...x){
        for(int i=0;i<x.length;i++){
            sum+=x[i];
        }
        return sum;
    }
}

结果:
在这里插入图片描述
3、对象的组合–对我来说这是个难点
啊哈哈哈哈这里插个题外话
在这里插入图片描述
正题:
定义:如果一个对象a组合了对象b,那么对象b就可以委托对象b调用其方法
理解:一个类里面声明了另一个类的对象,则这个类中的方法可以直接用另一个类的方法(需要声明,不需要创建)
例子

import java.util.Scanner;
public class Test2 {
    public static void main(String args[]) {
        Circle circle = new Circle();  //创建circle对象 分配空间
        circle.setRadius(10);   //设置circle的Radius为10
        Circular circular = new Circular();  //创建circular对象 分配空间
        System.out.println("circle的引用:" + circle);  //输出:circle的引用:Circle@4554617c 因为此时已分配空间
        System.out.println("圆锥的bottom的引用:" + circular.bottom);//输出:圆锥的bottom的引用:null  因为此时bottom还是一个空对象
        circular.setHeight(5);//调用circular的setHeight函数
        circular.setBottom(circle);//circle作为参数传递 ,将circle对象得引用以“传值”方式传递给circular对象的bottom,所以bottom对象和circle对象就有同样的实体(radius)  代码1
        System.out.println("circle的引用 : " + circle);   //输出 circle的引用Circle@4554617c,引用没改变
        System.out.println("圆锥的bottom的引用:" + circular.bottom);  //输出 圆锥的bottom的引用:Circle@4554617c,因为代码1 给bottom分配了空间
        System.out.println("圆锥的体积:" + circular.getVolme());  //输出 圆锥的体积:523.3333333333334,getVolme()调用getArea
        System.out.println("修改circle的半径,bottom的半径也同样变化");
        circle.setRadius(20);   //重新给Radius赋值
        System.out.println("bottom的半径:" + circular.getBottomRadius());  //getBottomRadius()调用bottom类的getRadius()
        System.out.println("重新创建circle,circle的引用将发生变化");
        circle =new Circle();
        System.out.println("circle的引用:" + circle);  //输出 circle的引用:Circle@74a14482  引用改变了
        System.out.println("但是不影响circular的bottom的引用");
        System.out.println("圆锥的bottom的引用:"+circular.bottom);   //输出 圆锥的bottom的引用:Circle@4554617c  引用没改变
    }
}
class Circle{
    double radius,area;
    void setRadius(double r){  //设置圆锥的底是一个Circle对象
        radius = r;

    }
    double getRadius(){
        return radius;
    }
    double getArea(){
        area = 3.14 * radius * radius;
        return area;
    }
}
class Circular{
    Circle bottom;
    double height;
    void setBottom(Circle c){
        bottom = c;
    }
    void setHeight(double h){
        height = h;
    }
    double getVolme(){
        if(bottom == null) return -1;
        else return bottom.getArea() * height / 3.0;
    }
    double getBottomRadius(){
        return bottom.getRadius();
    }
    void setBottomRadius(double r){
        bottom.setRadius(r);
    }

}

类的关联关系和依赖关系
在这里插入图片描述

关联关系:
定义:如果A类中的成员变量是B类声明的对象,那么A和B是关联关系,称A类的对象关联于B类的对象或A类的对象组合了B类的对象。
在这里插入图片描述

依赖关系:
如果A类中某个方法的参数是用B类声明的对象或某个方法返回的数据类型是B类对象,那么A和B的关系是依赖关系,称A依赖于B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值