本周学习总结
类与对象
类的定义与创建
成员变量与成员方法
数据成员称为成员变量,函数成员称为成员方法
类的一般结构
[类修饰符]class类名称
{
[修饰符]数据类型 成员变量名称;
:
[修饰符]返回值的数据类型 方法名(参数)
{
语句序列;
return [表达式];
}
}
对象的创建与使用
创建: 先声明变量,再利用new运算符指派给前面创建的对象
使用:对象名.对象成员
参数的传递
参数就是方法的自变量,参数要放在方法的括号内进行传递
##声明类的私有成员
private 变量名
类外部任何位置无法访问该类内的私有成员
公共成员 在类的成员声明前加public,则该成员可以被所有其他的类所访问
方法的重载
重载是指在同一个类内具有相同名称的多个方法 若这多个同名方法的参数个数不同或是参数个数相同但类型不同或顺序不同,则这些同名的方法就具有不同的功能
程序运行时,系统会根据参数的个数与类型来判断和调用相应的方法
class Cylinder
{
private double radius;
private int height;
private double pi=3.14;
private String color;
public double setCylinder(double r,int h)//重载方法
{
radius=r;
height=h;
return r+h;
}
public void setCylider(String str)//重载方法
{
color=str;
}
public void show()
{
System.out.println("圆柱的颜色为:"+color);
}
double area()
{
return pi*radius*radius;
}
double volume()
{
return area()*height;
}
}
public class Test01//定义主类
{
public static void main(String[] args)
{
double r_h;
Cylinder volu=new Cylinder();
r_h=volu.setCylinder(2.5,5);//设置圆柱底半径和高
volu.setCylinder("红色");//设置圆柱的颜色
System.out.println("圆柱底半径与高的和="+r_h);
System.out.println("圆柱体积="+volu.volume());
volu.show();
}
}
构造方法
构造方法的作用与定义
作用:对象创建时自动调用并执行
定义:是一种特殊的、与类名相同的方法,专门用于在创建对象时完成初始化工作
特殊性主要体现在:
- 构造方法的方法名与类名相同
- 构造方法无返回值,但不能写void
- 构造方法一般不能由编程人员显式的直接调用,而是用new调用
class Cylinder
{
private double radius;
private int height;
private double pi=3.14;
public Cylinder(double r,int h)
{
radius=r;
height=h;
}
double area()
{
return pi*radius*radius;
}
double volume()
{
return area()*height;
}
}
public class Test
{
public static void main(String[] args)
{
Cylinder volu=new Cylinder(3.5,8);
System.out.println("圆柱底面积="+volu.area());
System.out.println("圆柱体体积="+volu.volume());
}
}
构造方法的重载
构造方法的重载可以让用户用不同的参数来创建对象
class Cylinder
{
private double radius;
private int height;
private double pi=3.14;
String color;
public Cylinder()
{
radius=1;
height=2;
color="绿色";
}
public Cylinder(double r,int h,String str)
{
radius=r;
height=h;
color=str;
}
public void setColor()
{
System.out.println("该圆柱的颜色为:"+color);
}
double area()
{
return pi*radius*radius;
}
double volume()
{
return area()*height;
}
}
public class Test
{
public static void main(String[] args)
{
Cylinder volu1=new Cylinder();
System.out.println("圆柱1底面积="+volu1.area());
System.out.println("圆柱1体积="+volu1.volume());
volu1.setColor();
Cylinder volu2=new Cylinder(2.5,8,"红色");
System.out.println("圆柱2底面积="+volu2.area());
System.out.println("圆柱2体积="+volu2.volume());
volu2.setColor();
}
}
从一个构造方法内调用另一个构造方法
通过this()语句来调用的,且必须写在构造方法内的第一行
class Cylinder
{
private double radius;
private int height;
private double pi=3.14;
String color;
public Cylinder()
{
this(2.5,5,"红色");
System.out.println("无参构造方法被调用了");
}
public Cylinder(double r,int h,String str)
{
System.out.println("有参构造方法被调用了");
radius=r;
height=h;
color=str;
}
public void show()
{
System.out.println("圆柱底半径:"+radius);
System.out.println("高:"+height);
System.out.println("颜色:"+color);
}
double area()
{
return pi*radius*radius;
}
double volume()
{
return area()*height;
}
}
public class Test
{
public static void main(String[] args)
{
Cylinder volu1=new Cylinder();
System.out.println("圆柱底面积="+volu1.area());
System.out.println("圆柱体积="+volu1.volume());
volu1.show();
}
}
公共的构造方法与私有的构造方法
- 私有的构造方法在同一类内可被调用,无法在该构造方法所在的类外的地方被调用
- 公共的构造方法可以在类外被调用
在同一类内可以访问私有成员,若公共构造方法中用this()语句调用了私有构造方法,是可以实现私有构造方法在类外被调用
例如 创建圆柱体类Cylinder,并在该类的一个构造方法内调用另一个私有的构造方法
class Cylinder
{
private double radius;
private int height;
private double pi=3.14;
String color;
private Cylinder()
{
System.out.println("无参构造方法被调用了");
}
public Cylinder(double r,int h,String str)
{
this();
radius=r;
height=h;
color=str;
}
public void show()
{
System.out.println("圆柱底半径:"+radius);
System.out.println("高:"+height);
System.out.println("颜色:"+color);
}
double area()
{
return pi*radius*radius;
}
double volume()
{
return area()*height;
}
}
public class Test
{
public static void main(String[] args)
{
Cylinder volu1=new Cylinder( 2.5,5,"红色");
System.out.println("圆柱底面积="+volu1.area());
System.out.println("圆柱体积="+volu1.volume());
volu1.show();
}
}