**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