版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java程序设计基础教程-杨佩理(源程序&PDF课件)例4-1class Abcstatic int num = 0;void count()num +;System.out.println(This is object + num);public static void main(String args)Abc a = new Abc();Abc b = new Abc();Abc c = new Abc();a.count();b.count();c.count();System.out.println(Abc.num);例4-2class Circledouble r;double ge
2、tL()return 2 * Math.PI * r; /Math.PI为圆周率double getS()return Math.PI * r * r;例4-3class MyCalstatic int getSum(int n)int sum=0;for(int i=1;i=n;i+)sum += i;return sum;static long getFac(int n)long fac=1;for(int i=1;i=n; i+)fac *= i;return fac;class Testpublic static void main(String aa) System.out.prin
3、tln(MyCal.getSum(100)+t+MyCal.getFac(10); 例4-4class Personint sex;int salary;void employed()System.out.print(Work state:);if (salary=0) System.out.println(no job);else System.out.println(job);class Testpublic static void main(String aa)Person ps=new Person();ps.salary=300;ps.employed();ps.salary=0;p
4、s.employed();例4-5class ReferenceTestpublic static void main(String args)Person p1 = new Person(); /设对象为A,p1指向APerson p2 = new Person(); /设对象为B,p2指向Bp1.salary = 1;p2.salary = 2;System.out.println(p1.salary+t+p2.salary);p1 = p2; / p1重定向,也指向了p2指向的BSystem.out.println(p1.salary + t + p2.salary);p1.salary
5、 = 8;System.out.println(p1.salary + t + p2.salary);例4-6class Starstatic void print(char c,int n)for(int i=0; in; i+)System.out.print(c);public static void main(String args) for(int i=0;i5;i+) print( , 10-i); /输出10-i个空格 print(*,2*i + 1); /输出2i+1个星号 System.out.println(); 例4-7class TestCirclepublic sta
6、tic void main(String args)Circle cc = new Circle();cc.r = 3.5; System.out.println(cc.getL() + tt + cc.getS(); 例4-8class TestOLint x;void func()System.out.println(no arg);String func(int i)return arg is + i;void func(String s)System.out.println(s);public static void main(String a)TestOL c = new TestO
7、L();c.func();c.func(c.func(100);例4-9class TestOL1void func(double x)System.out.println(x+ is double);void func(int x)System.out.println(x+ is int);public static void main(String a)TestOL1 c=new TestOL1();c.func(1); /将调用void func(int x)c.func(2.5); /将调用void func(double x)c.func(3.5f); /窄化转型,调用void fu
8、nc(double x)例5-1class CleverCircledouble r;CleverCircle(double x)r = x;double getL()return 2 * Math.PI * r;double getS()return Math.PI * r * r;class Testpublic static void main(String aa)CleverCircle cc=new CleverCircle(2); System.out.println(cc.getL()+tt+cc.getS();cc=new CleverCircle(3.5); System.o
9、ut.println(cc.getL()+tt+cc.getS(); 例5-2class Flowerstatic int num=0;Flower()num+;System.out.println(num+朵花开了!);public static void main(String aa) new Flower(); new Flower(); new Flower(); 例5-3class Mycalstatic int sum(int n)int s=0;for(int i=0;i=n;i+)s+=i;return s;static int sum(int m,int n)int s=0;
10、for(int i=m;i=n;i+) s+=i;return s;public static void main(String aa) System.out.println(sum(100); System.out.println(sum(50,90); 例5-4class NewFlowerstatic int num = 0; NewFlower() /第一个构造方法,无参num +;System.out.println(num + 朵花开了!);NewFlower(String color) /第二个构造方法,带字符串型参数num +;System.out.println(num+朵花
11、开了.是+color+花!);public static void main(String args) new NewFlower(); /没有参数,调用第一个构造方法 new NewFlower(红);/带参数,调用第二个构造方法 new NewFlower(蓝);/带参数,调用第二个构造方法 例5-5class Rectangledouble w;double h;Rectangle(double x) /正方形,长宽相同w = h = x; Rectangle(double x, double y) /矩形w = x; h = y;double getS()return w * h;cl
12、ass Testpublic static void main(String aa) System.out.println(new Rectangle(2.3,4.5).getS(); System.out.println(new Rectangle(7.6).getS(); 例5-6class TagTag(int m)System.out.println(Tag(+m+);class CardTag t1=new Tag(1);Card()System.out.println(Card();t3=new Tag(33);Tag t2=new Tag(2);void f()System.ou
13、t.println(f();Tag t3=new Tag(3);class TestInit2public static void main(String aa)Card t=new Card();t.f();例5-7class TestInitA int x; Circle y; boolean z;public static void main( String args ) TestInit ti=new TestInit(); System.out.println( x is + ti.x ); System.out.println( y is + ti.y ); System.out.
14、println(z is + ti.z); 例5-8class TestInitCint x=3;TestInitC()x=5; public static void main( String args ) TestInitC t=new TestInitC(); System.out.println(t.x ); 例5-9class TestInitDTestInitD(int a)x=a;public static void main( String args )System.out.println( new TestInitD(5).x );int x=3;例5-10class Test
15、InitEString s1=String1;TestInitE()System.out.println(init);System.out.println(s2);static String s2,s3;statics2=String2;s3=String3;class Testpublic static void main(String aa)System.out.println(Creating new TestInitE);new TestInitE();System.out.println(Creating new TestInitE);new TestInitE();例5-11cla
16、ss TestOLint x;void func()System.out.println(no arg);String func(int i)return arg is + i;void func(String s)System.out.println(s);public static void main(String a)TestOL c = new TestOL();c.func();c.func(c.func(100);例5-12class TestOL1void func(double x)System.out.println(x+ is double);void func(int x
17、)System.out.println(x+ is int);public static void main(String a)TestOL1 c=new TestOL1();c.func(1); /将调用void func(int x)c.func(2.5); /将调用void func(double x)c.func(3.5f); /窄化转型,调用void func(double x)例5-13class ThisTestint a;ThisTest(int a) /参数与成员变量同名this.a = a; /成员变量a取得参数值a +;public static void main(St
18、ring args) System.out.println(new ThisTest(5).a); /结果是? 例5-14 class TestBint a;int b;TestB(int a,int b)this.a=a;this.b=b;System.out.println(a+-+b+t+this.sum();TestB(int a)this(1,a);int sum()int s=0;for(int i=a;i=b;i+)s+=i;return s;public static void main(String aa)new TestB(10,20);new TestB(100);例5-
19、15class Triangledouble a,b,c; /三个边Triangle()a=3;b=4;c=5;Triangle(double x)a=b=c=x;Triangle(double a,double b,double c)this.a=a;this.b=b;this.c=c;double getS()if(a+b=c|c+b=a|a+c=b) return 0;double l=(a+b+c)/2;double s=Math.sqrt(l*(l-a)*(l-b)*(l-c);return s;/下面Tri类是对Triangle类的测试class Tripublic static
20、void main(String aa)System.out.println(new Triangle().getS();System.out.println(new Triangle(5).getS();System.out.println(new Triangle(5,8,6).getS();System.out.println(new Triangle(2,9,6).getS();例6-1package mylib.simple;public class Base1int x; /无权限修饰符成员变量void print() /无权限修饰符成员方法System.out.println(x
21、); /本类访问x,可行!例6-2package mylib.simple;public class Base2public int x; /public成员变量public void print() /public成员方法System.out.println(x); /本类访问pubic成员,可行!例6-3package mylib.simple;public class List public List() System.out.println(mylib.simple.List); 例6-4package my.tools;public class Ppublic static void
22、 rint(Object s)System.out.print(s);public static void rintln(Object s)System.out.println(s);例6-5class Flowerprivate Flower()System.out.println(开花了!);static Flower getFlower()return new Flower();void print()System.out.println(这是一朵美丽的花。);class PrivateFlowerTestpublic static void main(String args)Flowe
23、r f=Flower.getFlower(); /Flower f=new Flower();?f.print();例6-6package mylib.simple;class TestBase1public static void main(String args) Base1 b=new Base1();b.x=5; /同软件包中的类访问,可行!b.print(); /同上。 例6-7class TestBase2 /TestBase2类与Base2类不同软件包public static void main(String args) mylib.simple.Base2 b=new myl
24、ib.simple.Base2();b.x=5; /不同软件包中的类访问public成员,可行!b.print(); /同上。 例6-8import mylib.simple.List;class TestListpublic static void main(String args)new List(); /若无import语句,此处应为new mylib.simple.List();例6-9import my.tools.P;class TestPpublic static void main(String aa) P.rint(Its a try.); P.rintln(.); P.ri
25、nt(Math.PI); P.rintln(); P.rintln(1+2); 例6-10class Baseprivate int x=1; /private成员变量private void print() /private成员方法System.out.println(x);void doprint()print();class Testpublic static void main(String args)Base b = new Base();b.doprint(); /用b.print();替换试试!例7-1class Animalint age;double w;Animal()Sy
26、stem.out.println(Here is a animal);void eat()System.out.println(Animal.eat);void sleep()System.out.println(Animal.sleep);void breathe()System.out.println(Animal.breathe);class Fish extends AnimalFish()System.out.println(Here is a fish);void breathe()System.out.println(Fish.breathe 。);public static v
27、oid main(String aa) Fish f=new Fish(); f.eat(); f.sleep(); f.breathe(); 例7-2class ArtArt()System.out.println(Art constructor);class Drawing extends ArtDrawing()System.out.println(Drawing constructor);class Cartoon extends DrawingCartoon()System.out.println(Cartoon constructor);public static void mai
28、n(String aa)new Cartoon();例7-3class Personint salary;void employed()if (salary=0) System.out.println(no job);else System.out.println(job);class Children extends Personint age;void printAge()System.out.println(Age:+age);public static void main(String aa)Children c=new Children();c.salary=560;/从Person
29、类继承的属性变量c.age=12;/本类的属性变量c.printAge();/本类的方法c.employed();/从Person类继承的方法例7-4class A public double circleArea(double r)return Math.PI * r * r; class Bdouble r1,r2,r3;B(double a,double b,double c)r1 = a;r2 = b; r3 = c;class Test public static void main(String args)B b = new B(2, 3.5, 2.5);A a = new A()
30、;System.out.println(a.circleArea(b.r1);System.out.println(a.circleArea(b.r2);System.out.println(a.circleArea(b.r3);例7-5class A public double circleArea(double r)return Math.PI*r*r; class Bdouble r1,r2,r3;A a = new A();B(double a,double b,double c)r1 = a; r2 = b; r3 = c;class Test public static void
31、main(String args)B b = new B(2, 3.5, 2.5);System.out.println(b.a.circleArea(b.r1);System.out.println(b.a.circleArea(b.r2);System.out.println(b.a.circleArea(b.r3);例7-6class AA(int m) System.out.println(A(+m+); class B extends AB(int m)super(); /隐含System.out.println(B(+m+);public static void main(Stri
32、ng aa) new B(100); 例7-7class FinalClassprivate FinalClass()System.out.println(Its a final class);class FinalTest extends FinalClassFinalTest()System.out.println(Final Test.);public static void main(String aa)new FinalTest();例7-8class FinalMethodfinal void A() System.out.println(FinalMethod.A(); clas
33、s FinalTest1 extends FinalMethodvoid A()System.out.println(FianlTest1.A();public static void main(String aa)new FianlTest1().A();例7-9class Children extends Personint age;void printAge()System.out.println(Age:+age);void employed()System.out.println(A child should study in the school.);public static v
34、oid main(String aa)Children c=new Children();c.salary=560;/从Person类继承的属性变量c.employed();/从Person类继承的方法例7-10class A public double circleArea(double r)return Math.PI*r*r; class Bdouble r1,r2,r3;A a = new A();B(double a,double b,double c)r1 = a; r2 = b; r3 = c;class Test public static void main(String a
35、a)B b=new B(2,3.5,2.5);System.out.println(b.a.circleArea(b.r1);System.out.println(b.a.circleArea(b.r2);System.out.println(b.a.circleArea(b.r3);/class A /public double circleArea(double r)/return Math.PI*r*r;/ /class B/A a = new A(); /void printCArea(double r)/System.out.println(a.circleArea(r);/clas
36、s Test /public static void main(String a)/B b=new B();/b.printCArea(3.5);/ /class A /public double employed(double salary)/return salary*0.8;/class B /A a;/double x;/B(double x)/this.x = x;/a = new A();/class Test/public static void main(String aa)/B b=new B(1000);/System.out.println(He should get +
37、 b.x);/System.out.println(But he only get + b.a.employed(b.x);/例7-11class GrandParentGrandParent(String s)System.out.println(GrandParent +s);class Parent extends GrandParentParent(String s) super(Parent +s); /主动调用父类构造方法class Children extends ParentChildren(String s) super(Children +s); /主动调用父类构造方法pu
38、blic static void main(String a)new Children(lili);例7-12class Aint id; A(int a)id = a; void f()System.out.println(SuperClass);class B extends A int id; /对父类的成员变量进行隐蔽B(int a) super(a); void f() System.out.println(SubClass); void test() System.out.println(id+t + super.id); f(); /访问本类中重写的f方法 super.f();
39、/访问父类中被重写的f方法 public static void main(String args) (new B(5).test(); /创建B类对象并调用test方法 例7-13import javax.swing.*;class Ext extends JFrameExt()setVisible(true);setSize(300,200);public static void main(String aa)new Ext();例8-1abstract class Shape /定义抽象类Shapeabstract double getL();/求周长的方法,抽象!abstract do
40、uble getS();/求面积的方法,抽象!void printSL()/输出结果System.out.println(周长:+getL()+t面积:+getS();class Circle extends Shape/定义圆类Circledouble r;Circle(double x)r = x;double getL()return 2 * Math.PI * r; /重写抽象方法double getS()return Math.PI*r*r;class Triange extends Shape/定义三角形类Triangledouble a,b,c;Triange(double x,
41、double y,double z)a = x;b = y;c = z;double getL()return a + b + c; /重写抽象方法double getS()double l=(a+ b+ c)/2;return Math.sqrt(l-a)*(l-b)*(l-c)*l);class Square extends Shape/定义长方形类Squaredouble a,b;Square(double x,double y)a=x;b=y;double getL()return 2*(a+b); /重写抽象方法double getS()return a*b;class Testpublic
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物标志物在糖尿病衰弱早期筛查中的应用
- 生物墨水的细胞外基质模拟设计
- 生物打印技术在骨盆缺损修复中的临床应用
- 生活质量评估指导下的宫颈癌个体化放化疗方案
- 滴工程师面试常见问题及答案
- 地勤指挥员面试题集
- 电子商务平台运营经理招聘面试题集
- 项目经理专业面试题集与解答技巧
- 高级财务管理师面试题及解答指南
- 玫瑰痤疮术后皮肤抗炎方案设计
- 2025年青岛市公安局警务辅助人员招录笔试考试试题(含答案)
- 科技园区入驻合作协议
- 电大专科《个人与团队管理》期末答案排序版
- 山东科技大学《基础化学(实验)》2025-2026学年第一学期期末试卷
- 2025年吐鲁番辅警招聘考试题库必考题
- 护理放射科小讲课
- 机关党支部2025年度抓基层党建工作述职报告
- 2025年生态环境监测系统建设可行性研究报告及总结分析
- 2023北京海淀高一(上)期末英语试卷含答案
- 离心泵课件教学课件
- 我眼中的爸爸妈妈课件
评论
0/150
提交评论