待我学有所成,结发与蕊可好。@夏瑾墨
- 用户自定义类(是用户自己编写的类,以下定义一个Cylinder类)
package com.zhong;
class Cylinder //定义Cylinder类
{
double radius; //定义成员变量radius
int height; //定义成员变量height
double pi=3.14;
void area()
//定义无返回值的方法area(),用来计算圆柱底面积
{
System.out.println("底面积="+pi* radius* radius);
}
double volume ()
//定义返回值为double型的方法volume (),计算体积
{
return (pi* radius* radius)*height;
}
}
2.定义一个圆柱体类,并创建相应的对象,然后计算圆柱体的底面积与体积
public class app7_1 //定义公共类
{
public static void main(String args[])
{ //程序执行的起始点
Cylinder volu;
volu=new Cylinder(); //创建新的对象
volu.radius=2.8; //赋值圆柱volu的底半径
volu.height=5; //赋值圆柱volu的高
System.out.println("底圆半径="+volu.radius);
//输出底圆半径
System.out.println("圆柱的高="+volu.height);
//输出圆柱的高
System.out.print("圆柱");
volu.area(); //输出面积
System.out.println("圆柱体体积="+volu.volume());
//输出体积S
}
}
- 创建对象
使用new操作符创建对象
- 如,要创建圆柱体类的对象,可用下列的语法来创
建:
Cylinder volu; //声明指向对象的变量volu
volu=new Cylinder(); //利用new创建新的对
象,并让变量volu指向它。
- 另外在创建对象时也可以将上面的两个
语句合并成一行,即在声明对象的同时使用
new运算符创建对象。如:
Cylinder volu=new Cylinder();
- 构造方法(构造函数)
构造方法的定义与使用
1.1 在类内部调用自己的方法
/*
在类内部调用自己的方法
*/
package com.zhong;
class Cylinder1 //定义Cylinder类
{
double radius;
int height;
double pi=3.14;
double area() //定义返回值为double型的方法area (),计算底面积
{
return pi* radius* radius;
}
double volume()
//定义返回值为double型的方法volume (),计算体积
{
return area()*height; //在类内调用area()方法
}
}
public class app7_2 //定义公共类
{
public static void main(String args[])
{
Cylinder1 volu;
volu=new Cylinder1(); //创建新的对象
volu.radius=2.8; //赋值圆柱volu的底半径
volu.height=5; //赋值圆柱volu的高
System.out.println("底圆半径="+volu.radius);
System.out.println("圆柱的高="+volu.height);
System.out.print("圆柱");
System.out.println("底面积="+volu.area());
System.out.println("圆柱体体积="+volu.volume());
}
}
1.2以变量为参数调用方法
package com.zhong;
class Cylinder2
{
double radius;
int height;
double pi;
void SetCylinder(double r, int h, double p)
{
pi=p;
radius=r;
height=h;
} //具有3个参数的方法
double area(){ return pi* radius* radius; }
double volume() {return area()*height; }
}
public class app7_3 //定义公共类
{
public static void main(String args[])
{
Cylinder2 volu=new Cylinder2();
volu.SetCylinder(2.5, 5,3.14);
//调用并传递参数到SetCylinder()
System.out.println("底圆半径="+volu.radius);
System.out.println("圆柱的高="+volu.height);
System.out.println("圆周率pi="+volu.pi);
System.out.print("圆柱");
System.out.println("底面积="+volu.area());
System.out.println("圆柱体体积="+volu.volume());
}
}
底圆半径=2.5
圆柱的高=5
圆周率pi=3.14
圆柱底面积=19.625
圆柱体体积=98.125
1.3以数组作为参数或返回值的方法调用
1.传递数组
【例】以一维数组为参数的方法调用,求若干数的最小值。
/*
已数组作为参数或返回值的方法调用,传递数组。
*/
package com.zhong;
class LeastNumb //定义另一个类
{
public void least(int array[])
//参数array[]接收一维整型数组
{
int temp=array[0];
for (int i=0;i<array.length;i++)
if (temp>array[i])
temp=array[i];
System.out.println("最小的数为:"+temp);
}
}
public class app7_4 //定义主类
{
public static void main(String args[])
{
int a[]={8,3,7,88,9,23}; //定义一维数组a
LeastNumb MinNumber=new LeastNumb ();
MinNumber.least(a); //将一维数组a传入least()方法
}
}
程序运行结果为:
最小的数为:3
1.4返回值为数组类型的方法
【例】将一个矩阵转置后输出。//app7_5.java 返回值是数组类型的方法
/*
*/package com.zhong;
class trans
{
int temp;
int[][] transpose(int array[][])
{ //返回值为二维整型数组
for (int i = 0; i < array.length; i++)
{ //将矩阵转置
for (int j = i + 1; j < array[i].length; j++)
{
temp = array[i][j];
array[i][j] = array[j][i];
array[j][i] = temp;
}
}
return array; //返回二维数组
}
}
class ParameterPassedByValue {
static void change(String s, StringBuffer sb) {
s = "aaaa";
sb.setLength(0);
sb.append("aaaa");
}
public static void main(String args[]) {
String s = "bbbb";
StringBuffer sb = new StringBuffer("bbb");
change(s, sb); //引用类型变量的值是对象引用而非对象本身
System.out.println(s);
System.out.println(sb);
}
}
public class app7_5
{
public static void main(String args[])
{//定义二维数组
int a[][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
int b[][] = new int[3][3];
trans pose = new trans(); //创建trans类的对象pose
b = pose.transpose(a); //用数组a调用方法,返回值赋给数
for (int i = 0; i < b.length; i++)
{ //输出数组的内容
for (int j = 0; j < b[i].length; j++)
{
System.out.print(b[i][j] + " "); }
System.out.print("\n"); //每输出数组的一行后换行
}
}
}
输出结果:
1 4 7
2 5 8
3 6 9
4.匿名对象
例如:
Cylinder volu=new Cylinder();
volu.SetCylinder(2.5, 5,7.1.14);
改写为:
new Cylinder().SetCylinder(2.5, 5,7.1.14);
则Cylinder()就是匿名对象。
使用匿名对象通常有如下两种情况:
(1)如果对一个对象只需要进行一次方法调用,那
么就可以使用匿名对象。
(2)将匿名对象做为实参传递给一个方法调用
待我学有所成,结发与蕊可好。@夏瑾墨 by Jooey