java面向对象练习

第一章 面向对象

面向对象是Java语言区别c语言的一个重要特点,也是学好Java必须掌握的重要部分。我们都知道Java是面向对象,而c语言是面向过程的,想要学好Java就得学好面向对象。
1.类和对象的概念
类是对一类事物进行描述,是抽象的,概念上的定义;对象是实际存在的该事物的每个个体,因而也称实例。
Java语言中定义类的语法如下:

1 [修饰符] class 类名
2 {
3 定义构造方法;
4 定义属性;
5 定义方法;
6  }

注意:类中各成员之间的定义顺序对程序没有任何影响。
Java语言中创建对象的语法如下:
声明对象:类名 对象名
实例化对象:对象名 =new 构造方法()
属性的调用:对象名.属性
方法的调用:对象名.方法名([参数])
注意:无论数组还是对象,当程序访问引用变量的属性或方法时,实际是访问该引用变量所引用的数组,对象的属性或方法。

2.方法详解
方法是类或对象的行为特征的抽象,是类或对象最重要的组成部分,通过方法可以实现对类属性的操作。其声明格式如下:

1 [<修饰符>]<返回类型><方法名>([参数列表]){方法体}

注意:如果方法的返回类型为void,说明方法没有返回值,所以在main()方法中调用时,可以将此方法作为一条语句直接在程序中使用。
而参数的传递是指实际参数向形参值的传递的过程。如果声明方法时包含形参的声明,则调用方法时必须为这些形参指定参数值,调用方法时实际传给形参的参数值被称为实参。所谓值传递就是将实参的副本(复制品)传递给形参,而实身不会到影响。

3.可变形参

1 [<访问修饰符>] <返回类型> <方法名> (变量类型...变量名) {方法体}
2 public void test(String...name){System.out.println(name)}

(1)可变形参,可以像数组一样使用,也可以用foreach进行遍历
(2)只能写在形参列表的最后
(3)对比数组形参,可变形参不传参也不会报错,数组形参在不传参里也要传一个null才不报错

4.构造方法

(1)构造方法与普通方法的区别
 ①方法名必须与类名一致
 ②没有返回值,void也不能写
 ③可以重载
(2)没有编写构造方法时,系统会自动创建一个没有方法体的构造方法

练习:创建士兵类(Soldiers)

(2)在该类中定义一个有参数的构造方法,该方法包含一个String类型
的形参变量name和两个int类型变量的x.y,在构造器中输入该士兵信息。代码如下:

1            public Soldiers(String name,int x,int y){
2  System.out.println("英雄名字:"+name+'初始化横坐标='+x+"纵坐标='+y)}
3 public static void main(String[] args) {
4 Scanner input= new Scanner;
5 用于(i=0,i<5,i++){
6 System.out.printin("请输入第"+(i+1)+'个士兵的名字:");
7 String name=input.next ()8 System.out.printin("请输入横坐标:");
9 int x = input.nextlnt ()10 System.out.printin("请输入纵坐标:");
11 int y =nextint ()12 Soldier s=new Soldier(name,x,y);
13 }
14 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第四章 和对象 [习题] 1.成员的访问控制符有哪些? 2.为什么说构造函数是一种特殊的方法?特殊在哪里?构造函数什么时候执行?被谁调 用? 3.关键字static可以修饰哪些的组成部? 4.静态属性有什么特点?对象可以访问或修改静态属性吗? 5.同名的不同方法共存的情况称为什么?如何区这些同名方法? 6.什么是包?如何创立包?为什么要使用包?包物理地对应什么? 7.试写出一个语句创立一个名为MyPackage的包,这个语句应该放在程序的什么位置 ? 8.如何引用整个包?如何引用包的一个?试写出引用MyPackage所有的语句和 引用MyPackage包的一个MyClass1。 9.阅读下面的程序,说明它们的输出。 public class UseRef{ public static void main(String args[]){ MyClass1 myobj,myref; myobj=new MyClass1(-1); myref=myobj; "+myobj.getData()); myref.setData(10); } } class MyClass1{ int data; MyClass1(int d){ data=d; } int getData(){ return data; } void setData(int d){ data=d; } } 10.编写一个实现秒表的功能。要求至少实现开始计时、停顿计时、针秒针归零 、获得针示数、获得秒针示数、获得总时间的毫秒数等功能。 11.编写一个实现复数的运算。要求至少实现复数相加、复数相减、复数相乘等功 能。 12.编程创立一个Box,在其定义三个变量表示一个立方体的长、宽和高,定义 一个构造方法对这三个变量进展初始化,然后定义一个方法求立方体的体积。创立一个 对象,求给定尺寸的立方体的体积。 13.定义一个学生〔Student〕,属性包括:学号,班号,姓名,性别,年龄,班 级总人数;方法包括:获得学号,获得班号,获得姓名,获得性别,获得年龄,获得班 级总人数,修改学号,修改班号,修改姓名,修改性别,修改年龄以及一个toString() 方法将Student的所有属性组合成一个字符串。定义一个学生数组对象。设计程序进 展测试。 14.定义一个学生和一个课程,要求可以表示现实生活一个学生可以选择多门 课程的情况。编写程序进展测试。 ----------------------- java面向对象程序设计习题-(11)全文共2页,当前为第1页。 java面向对象程序设计习题-(11)全文共2页,当前为第2页。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值