类的定义
类包括类头和类体两部分,类体内包括类的数据成员和方法成员两个部分。 数据成员用于描述类的属性,方法成员用于描述类的行为。
对象的定义和使用
类是抽象的,是一种自定义的数据类型。对象是类的一个实例或者称之为变量。 对象的定义包括两个部分:声明对象和创建对象。 通过对象名调用类的方法。
-
1、以下叙述正确的是(a)
A、类中的成员变量在整个类内都有效,其有效性与它在类中书写的先后位置无关。
B、定义类时,类体中每行只能声明一个变量;
C、类体中,成员变量的有效范围和声明的位置有关,从声明的位置开始有效;
D、方法体内不可以对成员变量进行操作,只能对方法体中声明的变量进行操作。 -
2、类的方法中声明的局部变量的名字可以与方法的参数同名。b
A、正确
B、错误 -
3、以下说法错误的是(d)
A、用类声明的变量被称为对象,对象(变量)负责存放引用
B、通过对象名可以访问对象中的成员和调用类中的方法
C、对象是类的实例,类是对具有相同的属性和行为的对象的抽象,是自定义的一种数据类型。
D、用类声明对象后,就可以直接使用该对象调用类的方法了 -
4、设Cat是已定义好的一个类,void setLeg(int leg)是该类中的一个方法.则以下哪个操作不会导致运行时出现NullPointerException? cd
A、 - Cat cat; cat.setLeg(4);
- B、
- Cat cat=null;
cat.setLeg(4);
C、Cat cat;
D、
cat = new Cat();
cat.setLeg(4);Cat cat = new Cat();
cat.setLeg(4);
类的结构
[修饰符] class 类名{ 数据成员 方法成员 }
一般每个类作为一个文件,方便使用。
/*朋友信息类,请在下面的【】处补充代码*/
public class Friends {
//数据成员:姓名、电话、单位、年龄、备注
String name;
String tel;
String workUnit;
int age;
String note;
//方法成员
//设置朋友信息
void set(String name,String tel,String workUnit,int age,String note)
{
this.name=name;
this.tel=tel;
this.workUnit=workUnit;
this.age=age;
this.note=note;
}
//显示信息
void display()
{
System.out.printf( "name:%s tel:%s workUnit:%s age:%d note:%s\n", name,tel,workUnit,age,note);
}
}
复数的运算规则
设有两个复数 a+bi 、 c+di 加:(a+bi)+(c+di)=(a+c) + (b+d)i 减:(a+bi)-(c+di)=(a-c) + (b-d)i 乘:(a+bi)*(c+di)=(ac-bd)+(bc+ad)i 除:复数的商:分子分母同时乘以分母的共轭复数 (a+bi)/(c+di) =((a+ bi)(c- di))/((c+ di)(c- di)) =(ac+bd)/(c^2+d^2)+ ((bc-ad)/(c^2+d^2))i
//复数类的定义,请在下面的【】处填写代码
public class Complex {
//数据成员: 实部、虚部,都是double类型
double real,imag;
//以下是方法成员
// 设置复数
void set(double r, double i)
{
real=r;
imag=i;
}
void display( ) // 显示复数,格式为 a + bi
{
System.out.printf("%.2f + %.2fi\n", real,imag);
}
Complex add(Complex c2) // 两个复数相加
{
Complex c3=new Complex();
c3.real=this.real+c2.real;
c3.imag=this.imag+c2.imag;
return c3;
}
Complex sub(Complex c2) // 两个复数相减
{
Complex c4=new Complex();
c4.real=this.real-c2.real;
c4.imag=this.imag-c2.imag;
return c4;
}
//复数的乘积 (a+bi)*(c+di)=(ac-bd)+(bc+ad)i
Complex mul(Complex c2)
{
Complex c5=new Complex();
c5.real=this.real*c2.real-this.imag*c2.imag;
c5.imag=this.imag*c2.real+this.real*c2.imag;
return c5;
}
/*复数的商:分子分母同时乘以分母的共轭复数
(a+bi)/(c+di) =((a+ bi)(c- di))/((c+ di)(c- di))
=(ac+bd)/(c^2+d^2)+ ((bc-ad)/(c^2+d^2))i
*/
Complex div(Complex c2)
{
Complex c6=new Complex();
c6.real=(this.real*c2.real+this.imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);
c6.imag=(this.imag*c2.real-this.real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);
return c6;
}