面向对象基础练习

上传人:daj****de2 文档编号:163575321 上传时间:2022-10-22 格式:DOCX 页数:18 大小:72.70KB
收藏 版权申诉 举报 下载
面向对象基础练习_第1页
第1页 / 共18页
面向对象基础练习_第2页
第2页 / 共18页
面向对象基础练习_第3页
第3页 / 共18页
资源描述:

《面向对象基础练习》由会员分享,可在线阅读,更多相关《面向对象基础练习(18页珍藏版)》请在装配图网上搜索。

1、1定义员工类需求:定义一个员工类,自己分析出几个成员,然后给出成员变量,构造方法,getXxx()/setXxx()方法, 以及一个显示所有成员信息的方法。并测试。分析:员工成员变量:员工编号,姓名,年龄构造方法:无参构造方法成员方法:getXxx()/setXx x()show();*/class Employee 员工编号private String employeeld;姓名private String name;年龄private int age;构造方法public Employee() /getXxx()/setXxx()public String getEmployeeId()

2、return employeeld;public void setEmployeeId(String employeeld) this.employeeld = employeeld;public String getName() return name;public void setName(String name) this, name = n ame;public int getAge() return age;public void setAge(int age) this.age = age;显示所有成员信息的方法public void show() System.out.print

3、ln(员工编号是:+employeeld+的这个人是:,+name+的年龄是:+age);class EmployeeTest public static void main(String args) 创建对象Employee e = new Employee();给成员变量赋值e.setEmployeeId(czbk9527);e.setName(WI 白虎);e.setAge(18);获取数据/System.out.println(e.getEmployeeId()+e.getName()+ +e.getAge();我们在Employee类中定义了一个show方法。所以,我们改进一下, 使

4、用show方法e.show();2 定义 MYMATH严定义一个类MyMath,提供基本的加减乘除功能,然后进行测试。*/ import java.util.Seanner;class MyMath 加法功能public int add(int 可int b) return a + b;减法功能public int sub(int 可int b) return a b;乘法功能public int mul(int a,int b)return a * b;除法功能public int div(int 可int b) return a / b;测试类class MyMathTest public

5、 static void main(String args) 创建键盘录入对象Seanner sc = new Seanner(System.in);System.out.printlnC请输入第一个操作数:); int firstNumber = sc.nextlnt();System.outprintln(”请输入第二个操作数:); int sec on dNumber = sc.nextlnt();创建MyMath对象,并使用MyMath mm = new MyMath();System.out.printlnC加法结果:,+mm.add(firstNumber,sec on dNumb

6、er);System.out.printing减法结果:,+mm.sub(firstNumberzsec on dNumber);System.out.printin(乘法结果:,+mm.mul(firstNumberzsec on dNumber);System.out.printin(除法结果:,+mm.div(firstNumber/sec on dNumber);3求和的方法/*定义一个类Demo,其中定义一个求两个数据和的方法,定义一个测试了 Test,进行测试。变量什么时候定义为成员变量:如果这个变量是用来描述这个类的信息的,那么,该变量就应该定义为成员变量。变量到底定义在哪里好呢

7、?变量的范围是越小越好。因为能及时的被回收。*/方式严class Demo public int sum() int a =10;int b =20;int c =:a + b;return c;*/方式1满足了我们的要求,但是不好。因为参与操作的数据现在是固定的。方式2严class Demo public int sum(int eint b) return a + b;*/方式2可以满足我们的要求,但是呢我们学习过来面向对象的思想。我就再想,a , b可不可以定义为成员变量呢?如果可以,我们再改进一版class Demo int a;int b;public int sum() retur

8、n a + b;虽然这种方式可以,并且好像是符合了面向对象的思想。但是不好。因为我们曾经说过:类是一组相关的属性和行为的集合。并且类是通过事物转换过来的而类中的成员变量就是事物的属性属性是用来描述事物的同理:成员变量其实是用来描述类的。测试类class Test public static void main(String args) 创建对象方式1测试Demo d = new Demo();System.out.println(d.sum();*/方式2测试Demo d = new Demo();int a = 10;int b = 20;System.out.println(d.sum(a

9、/b);*/方式3测试Demo d = new Demo();d.a = 10;d.b = 20;System.out.println(d.sum();4定义长方形类/*定义一个长方形类,定义求周长和面积的方法,然后定义一个测试了 Test2 ,逬行测试。长方形的类:成员变量:lx i成员方法:求周长:(长+宽)*2; 求面积:长*宽注意:import必须出现在所有的class前面。*/import java.util.Sca nner;class ChangFangXing 长方形的长private int length;长方形的宽private int width;public Chang

10、FangXing()仅仅提供setXxx()即可public void setLength(int length) thisength = len gth;public void setWidth(int width) this.width = width;求周长public int getZhouChang() return (length + width) * 2;求面积public int getArea() return length * width;class Test2 public static void main(String args) 创建键盘录入对象Seanner sc

11、= new Seanner(System.in);System.out.printlnC请输入长方形的长:); int length = sc.nextlnt();System.o此printing请输入长方形的宽:”); int width = sc.nextlnt();创建对象ChangFangXing cfx = new ChangFangXing();先给成员变量赋值cfx.setL en gth(le ngth);cfx.setWidth(width);System.out.println(”周长是:M+cfx.getZhouChang();System.o此println(面积是:

12、n+cfx.getArea();5 main方法格式讲解main方法的格式讲解:public static void main(String args)public:公共的,访问权限是最大的。由于main方法是被jvm调用,所 以权限要够大。static:静态的,不需要创建对象,通过类名就可以。方便jvm的调用。void:因为我们曾经说过,方法的返回值是返回给调用者,而main方法 是被jvm调用。你返回内容给jvm没有意义。main:是一个常见的方法入口。我见过的语言都是以main作为入口。String args:这是一个字符串数组。值去哪里了?这个东西到底有什么用啊?怎么给值啊?这个东西早

13、期是为了接收键盘录入的数据的。格式是:java Main Demo hello world java*/class Main Demo public static void main(String args) /System.out.println(args); /Ljava.lang.String;175078b/System.out.println(argsJength); /0/System.out.println(argsO); /ArraylndexOutOfBoundsException接收数据后System, out. pri ntln (args);System, out. p

14、ri ntln (args Jen gth);/System.out.println(args0);for(int x=0; xargsength; x+) System, out. pri ntln (argsx);6定义一个人类严定义一个人类姓名和年龄都是变化的,这个我能接收,因为每个人的姓名和年龄是不同的。但是,我们现在选取的几个人都是中国人,他们的国籍是一样的。样的国籍,我每次创建对象,在堆内存都要开辟这样的空间,我就觉得有点浪费了。怎么办呢?针对多个对象有共同的这样的成员变量值的时候,Java就提高了一个关键字来修饰:statico*/class Pers on 姓名String n

15、ame;年龄int age;国籍/String country;static String country;public Person() public Person(String name,int age) this, name = n ame;this.age = age;public Person(String name,int age,String country) this, name = n ame;this.age = age;this.co untry = country; public void show() System.out.println(姓名:”+name+“,年龄

16、:”+age+“,国籍: H+country); class Pers on Demo public static void main(String args) 创建对象1Person pl = new Person邓丽君/中国”);pl.show();创建对象2/Person p2 = new Person(杨幕;22/中国”);/p2.show();Person p2 = new Person(杨幕,22);p2.show();创建对象3/Person p3 = new Person(”凤姐,20,”中国);/p3.show();Person p3 = new Person(n凤姐,20)

17、;p3.show();p3.country =美国,f;p3.show();pl.show();p2.show();7 static的特点/*static的特点:(它可以修饰成员变量,还可以修饰成员方法)A:随看类的加载而加载回想 main方法。B:优先于对象存在C:被类的所有对象共享举例:咱们班级的学生应该共用同一个班级编号。其实这个特点也是在告诉我们什么时候使用静态?如果某个成员变量是被所有对象共享的,那么它就应该 定义为静态的。举例:饮水机(用静态修饰)水杯(不能用静态修饰)D:可以通过类名调用其实它本身也可以通过对象名调用。推荐使用类名调用。静态修饰的内容一般我们称其为:与类相关的,类

18、成员*/class Student 非静态变量int num = 10;静态变量static int num2 = 20;class StudentDemo public static void main(String args) Student s = new Student(); System.out.pri ntln(s.num);System.out.pri ntln (Stude nt.nu m2); System.out.pri ntln(s.nu m2);8 static关键字注意事项static关键字汪意事项A:在静态方法中是没有this关键字的如何理解呢?静态是随看类的加载而

19、加载,this是随看对象的创建而 存在。静态比对象先存在。B:静态方法只能访问静态的成员变量和静态的成员方法静态方法:成员变量:只能访问静态变量成员方法:只能访问静态成员方法非静态方法:成员变量:可以是静态的,也可以是非静态的成员方法:可是是静态的成员方法,也可以是非 静态的成员方法。简单记:静态只能访问静态。*/class Teacher public int num = 10;public static int num2 = 20;public void show() System.out.println(num); 隐含的告诉你访问的是成员变量System.out.println(thi

20、s.num); 明确的告诉你访问的是成员变量System.out.pri ntln(num2);/fun ction();/fun ction2();public static void method() 无法从静态上下文中引用非静态变量num/System.out.println(num);System.out.pri ntln(nu m2);无法从静态上下文中引用非静态方法function()/fun ction();function2();public void function。public static void function2() class Teacher Demo publ

21、ic static void main(String args) 创建对象Teacher t = new Teacher();t.show();System.out.println(“);t.method();Static内存图解class PCT5W IStrlnj nae;lnt “e:static cantry;pjbllc PericnOOpjbllc胸 naie, !nt 朝e)public FerKn($trin? nuef lnt:se,String w:ry)pjblic Void ih() ISyitdi .Cut. prifttln(iUit*曲aufitry).)chss Fersoifleio IpAUc rrk wld &ain(Stnns些)IPersoi rl = m Per$fiC5ES5 16/0*); 从M(): r轉君 l如厂Person p2 = w Penal22). p2.shoiQ;Fmw p3 * Pew 賦fi: 23;pJ.shciO;pXcwntry 蚩 W;p3. ShciO;pl. shot ()rp2. shciO;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!