java教程4Word文档下载推荐.docx
- 文档编号:19651781
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:37
- 大小:406.01KB
java教程4Word文档下载推荐.docx
《java教程4Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《java教程4Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。
System.out.println(x+String.valueOf(c)+y+"
="
+result);
第二步:
调用他,来实现用户想要的功能
Function(1,2,‘+’);
//结果输出:
1+2=3
注意:
除了main方法外,其他方法都可以互相调用,main方法只有系统可以调用。
4、完整的类定义示例
publicclassMankind
voidname()
5、创建类的对象和运行程序
1)创建类的对象:
MankindsomePerson=newMankind();
2)给对象赋值:
somePerson.sex=1;
somePerson.salary=1000;
3)调用对象的方法:
somePerson.income(12000);
例子:
publicclassMankind
publicstaticvoidmain(String[]args)
somePerson.name();
System.out.println(“Mysalarythismonthis”+somePerson.salary);
运行结果:
Mynameisabc
Myincomethisyearis12000
Mysalarythismonthis1000
6、对象之间的关系
对象之间是相互独立的关系。
运行结果为:
注意下面这段程序:
publicclassMankindObject
publicstaticvoidmain(String[]args)
MankindObjectperson1=newMankindObject();
MankindObjectperson2=newMankindObject();
System.out.println("
person1="
+person1);
System.out.println("
person2="
+person2);
}
运行结果为:
4.2有返回值的方法
1、编写一个功能模块,他能够将两个整数按照用户的意愿进行四则运算
longFunction(intx,inty,charc)
returnresult;
longz=Function(1,2,‘+’);
System.out.println(“result=”+z);
//结果输出:
result=3
2、一个完整的Java程序
3、在编写有返回值的方法时,需要注意几点(参见P89下)
1)方法的声明的返回类型和其实际返回的数据类型要匹配
2)return语句不仅可以返回一个值,他实际上也退出了他所在的方法,因此在他之后不能有其他语句,那些语句不会被执行
4.3改变类的结构
1、比较下面两个程序
publicclassFor0
intnum=9;
for(num=1;
num<
6;
num++)
{
System.out.println(num);
}
publicclassFor1
voidm()
For1for1=newFor1();
for1.m();
2、将For1这个程序修改一下变为For2
publicclassFor2
intm()
returnnum;
For2for2=newFor2();
intnumber=for2.m();
System.out.println("
number:
"
+number);
3、折半查找算法的实现
在一组排序好的的数中寻找一个给定的数。
4.4类中成员间的访问机制
1、在一个类中的访问机制
类中某个方法若能够直接访问其他成员,该方法不能是静态的:
1)publicclassAccessInClass1
voidm1()
{
sex=1;
intm2()
sex=2;
returnsex;
//sex=3;
//error
voidm3()
m1();
m2();
2)publicclassAccessInClass2
staticintsalary;
salary=1;
salary=2;
m4();
m5();
staticvoidm4()
staticvoidm5()
AccessInClass2aic1=newAccessInClass2();
aic1.m1();
aic1.m2();
aic1.m3();
//m1();
//error
//m2();
//m3();
aic1.m4();
aic1.sex=3;
aic1.salary=3;
salary=3;
结论:
非静态方法可以直接访问非静态或者静态成员,而无须创建对象;
静态方法可以直接访问静态成员,也可以通过创建的对象来访问;
静态方法不能直接访问非静态成员,必须通过创建的对象来访问。
一个完整的程序参见教材第96页例程AccessInClass3.java
2、一个类访问另一个类
一个源程序文件AccessOtherClass1.java包含两个类
publicclassAccessOtherClass1
OtherClass1oc1=newOtherClass1();
oc1.sex=1;
sex="
+oc1.sex);
OtherClass1oc2=newOtherClass1();
oc2.sex=2;
+oc2.sex);
oc2.m2();
}
classOtherClass1
voidm2()
m2()"
);
文件名称要和加有pulbic关键字的类名称一致;
若每个类前面都不加public关键字,那麽文件可以以任何名称命名;
无论文件中包含多少个类,此文件编译后会生成各个类自己的class文件;
只有含有main方法的类可以运行。
4.5类中变量和方法中的变量
1、全局变量和局部变量的访问规则
publicclassVariableType1
intx=1;
inty=2;
x="
+x);
y="
+y);
//System.out.println("
z="
+z);
intz=3;
VariableType1vt=newVariableType1();
+vt.x);
//System.out.println(y"
="
+vt.y);
x为全局变量,y、z为局部变量。
2、全局变量和局部变量的初始化
如果变量在类中定义,那麽就是全局变量,可以不初始化,系统可以给他一个默认值,
而局部变量必须在使用它之前给他赋值。
publicclassDefaultValue1
booleant;
charc;
byteb;
shorts;
inti;
longl;
floatf;
doubled;
publicstaticvoidmain(String[]args)
intlocalVar=1;
//若不赋值,编译出错
localVar="
+localVar);
DefaultValue1d=newDefaultValue1();
PrimitiveDatatypeInitialvalue"
boolean="
+d.t);
null=["
+"
]"
char=["
+d.c+"
byte="
+d.b);
short="
+d.s);
int="
+d.i);
long="
+d.l);
float="
+d.f);
double="
+d.d);
3、变量的作用域
1)在Java中,变量的作用域在声明他的大括号内:
intx=2;
inty=3;
x=4;
x=5;
y=6;
//error
x=9;
x定义在最外层的一对花括号内,所以他在这对花括号内起作用,即作用域的范围;
y定义在里层的一对花括号内,所以他在这对花括号内起作用,出了内层的花括号,他就失效,相当于没有定义。
2)一个局部变量在其作用域中会把同名的全局变量屏蔽
publicclassScope1
intx=2;
xinmain="
Scope1vt=newScope1();
xinclass="
结果:
xinmain=2
xinclass=1
若通过对象访问一个变量,这个变量一定是全局变量(类成员变量),不是局部变量,
但是全局变量也不必通过创建对象来访问,如:
publicclassScope2
Scope2vt=newScope2();
vt.m();
m方法是个非静态方法,他可以直接访问全局变量x。
x=1
y=2
若将y改成x,结果会是什么呢?
publicclassScope3
//x=2,即局部变量
+this.x);
//x=1,即全局变量
Scope3vt=newScope3();
4.6类的构造方法和重载
1、类得构造方法
构造方法的格式:
方法名称与类名称一致,且没有任何返回类型(包括void)
构造方法的作用:
一般起初始化的作用
调用构造方法:
构造方法是系统调用的,而非程序员调用
何时调用:
当创建一个该类的对象的时候,系统就会调用一次此类的构造方法
2、重载方法与默认构造方法
同一个类中的方法名称一样的多个方法互成为重载。
将abs_float和abs_int方法合并:
构造方法的重载:
publicclassMankind2
publicMankind2()
outputofconstructorwithnoparam"
//----------------------------------------------------------------------------------------
publicMankind2(intnum)
outputofconstructorwithparam="
+num);
salary=num;
voidemployed(intsalaryValue)
if(salaryValue==0)
System.out.println("
nojob"
else
System.out.println("
job"
Mankind2somePerson1=newMankind2();
//隐含调用无参的构造方法
somePerson1created"
somePerson1.salary=0;
somePerson1.employed(somePerson1.salary);
somePerson1.salary="
+somePerson1.salary);
Mankind2somePerson2=newMankind2(100);
//隐含调用有参数的构造方法
somePerson2created"
somePerson2.employed(somePerson2.salary);
somePerson2.salary="
+somePerson2.salary);
总结:
重载方法之间的区别是参数的不同,包括参数的个数,类型,参数的排列顺序,但是不能用方法的返回值区分。
如:
intm(){…}
floatm(){…}
(把教材饭到109页,阅读程序)
4.7类的继承与方法重置
1、类的继承和重置方法
使用关键字extends表示继承(扩展)
类Mankind0
publicclassMankind0
voidmanOrWoman(intsexValue)
{….}
Iamjobless"
Ihaveajob"
doubleincome(intwage)
{…}
{….}
Mankind0是kids的父类(超类),kids是Mankind0的子类;
子类继承父类所有的成员(除了父类的构造方法)。
重置:
父类和子类各有一个方法,他们的名称相同,返回类型相同,参数完全相同,这两个方法成为重置。
(重置的好处)
2、在一个文件中继承类
上面的Kids类和Mankind0类分属两个文件,可以把他们合并到一个文件中:
switch(sexValue)
{
case0:
System.out.println("
aman"
break;
case1:
awoman"
default:
notamanorawomen"
publicclassKids1extendsMankind
intyearsOld;
voidprintAge()
age="
+yearsOld);
voidemployed(intsalaryValue)
kidsshouldstudyandnowork"
Mankindstart----------"
MankindsomePerson=newMankind();
//创建对象
som
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 教程