Java技术笔记2:类与对象实例之用户定义类

本文探讨了Java中的用户自定义类,详细介绍了如何创建对象、使用构造方法,以及在类中调用方法。通过示例展示了如何计算圆柱体的底面积和体积,讲解了构造函数的应用,包括以变量为参数调用方法和数组在方法中的应用。此外,还阐述了匿名对象的概念及其使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

待我学有所成,结发与蕊可好。@夏瑾墨

  1. 用户自定义类(是用户自己编写的类,以下定义一个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.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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值