Day1

  • Post author:
  • Post category:其他


ftp://10.10.2.200/

面向对象编程

方法:

表示了对象具有的行为,主要包括两个部分:方法头和方法体

方法头:访问修饰符 返回值类型 方法名(形参)

方法体:{}

可以把方法简单理解为菜谱

面向对象三大特性

(1)    封装

(2)    继承

(3)    多态

一.    封装

研究对象的 属性

姓名 品种 健康值 亲密度

方法

自述{}

public class Dog{

String name;

String strain;

int  health;

int  love;

/**

*狗狗的构造方法  没有返回值   | 企鹅 静态常量static final String=SEX_MALE=”Q仔”;

*     构造方法名与类名相同    | static:方法里不可以定义static变量只能在类里

*/

public Dog(){      //可以指定参数

health=60;  //初始化代码

love=60;

}

public void showSelf(){

System.out.println(“我是一只来自北方的”+strain+“狗”);

System.out.println(“我的名字叫”+name);

System.out.println(“健康值是:”+health);

System.out.println(“与主人的亲密度:”+love);

}



/**

*领养宠物

*/

public class PetAdopt{

public static void main(String[] args){

System.out.println(“欢迎来到宠物店”);

System.out.println(“请输入要领养的宠物名:”);

Scanner input=new Scanner(System.in);

String name=input.next();

System.out.println(“请输入要领养的宠物类型:1.狗狗2.企鹅”);

int petType=input.nextInt();

if(petType==1){

Dog dog=new Dog();

System.out.println(“请输入要领养的狗狗品种:1.拉布拉多2.雪纳瑞”);

int dogType=input.nextInt();

if(dogType==1){

dog.strain=”聪明的拉布拉多”;

}else if(dogType==2){

dog.strain=”酷酷的雪纳瑞”;

}

dog.name=name;

/*dog.health=60;

dog.love=60;*/

1.给定如下Java代码,下列(  C  )方法可以加入到Sample类中,并且能够编译正确。

public  class  Sample {

public  int  getSomething(int  d) {

return  d;

}

}

A.private  int  getSomething(int  i, String  s) {}

B.public  void  getSomething(int  i) {}

C.private  int  getSomething(int  i, String  s) {return  20;}

C.public  double  getSomething() {return “abc”;}

2.给定如下Java代码,编译运行,结果将是( B   )。

public  class  Sample {

private  int  x;

public  Sample() {

x = 1;

}

public  void  Sample (double  f) {

this.x = (int) f;

}

public  int  getX() {

return  x;

}

public  static  void  main(String[] args) {

Sample  s = new  Sample(5.2);

System.out.pringln(s.getX());

}

}

A.发生编译期错误,编译器提示:出现重复地方法Sample

B.发生编译期错误,编译器提示:未定义构造方法Sample(double)

C.正常运行,输出结果:5.2

D.正常运行,输出结果:5

3.给定如下Java代码,编译运行,结果将是(A    )。

public  class  Sample {

public  double  result(double  d1, double  d2) {

return  d1 < d2 ? d1:d2;

}

public  double  result(int  d1, double  d2) {

return  d1 > d2 ? d1:d2;

}

public  int  result(int  d1, int  d2) {

return  d1 – d2;

}

private  int  resule(int  i) {

return  i;

}

public  static  void  main(String[] args)

Sample  s = new  Sample();

System.out.print(s.result(2 , 3.0) + “ , “);

System.out.print(s.result(4.0 , 4.5) + “ , “);

System.out.print(s.result(10 , 9));

}

}

A.3.0 , 4.0 , 1

B.2 , 4.0 , 1

C.3.0 , 4.5 , 1

D.-1 , 4.0 ,1

4.构成方法重载的要素不包括( A  B )。

A.方法名与类名相同

B.返回类型不同

C.参数列表不同

D.在同一个类中

5.在如下所示的Sample类中,共有(  C  )个构造方法。

public  class  Sample {

private  int  x;

private  Sample() {

x = 1;

}

public  void  Sample(double  f) {

this.x = (int)f;

}

public  Sample(String  s){

}

}

A.4

B.3

C.2

D.1

1.

请指出下面代码中存在的错误,并什么错误原因。

class  Teacher1 {

public  Teacher1() {

}

}

class  Teacher2 {

public  void  Teacher2(String  name) {

}

}

public  class  TeacherTest {

public  static  void  main(String[]  args) {

Teacher1  t1 = new  Teacher1();

Teacher2  t2 = new  Teacher2(“Mr  lee”);

}

}

Teacher2是类名 是构造方法(函数) 没有返回值 去掉void

2.

编写一个类

Student1,代表学员,要求如下。

Ø

具有属性:姓名、年龄,其中年龄不能小于

16岁,否则输出错误信息。

Ø

具有方法:自我介绍,负责输出该学员的姓名、年龄。


编写测试类

Student1Test进行测试,看是否符合需求。

——

提示

———————————————————————————————————

Ø

在学员类的

SetAge()方法中验证年龄大小。

Ø

在测试类中分别测试学员年龄小于

16岁、大于16岁时的输出结果。

———————————————————————————————————————

3.

请指出下面代码中存在的错误,并说明错误原因。

public  class  Sample {

public  void  amethod(int  i, String  s) {  }

public  void  amethod(String  s, int  i) {  }

public  int  amethod(String  s1, String  s2) {  }

private  void  amethod(int  i, String  mystring) {  }

public  void  Amethod(int  i, String  s) {  }

private  void  amethod(int  i);

}

第一行rename amethod

第三行 change return type to void

第六行 add body

4.

编写一个类

Student2,代表学员,要求如下。

Ø

具有属性:姓名、年龄、性别和专业。

Ø

具有方法:自我介绍,负责输出该学员的姓名、年龄、性别以及专业。

Ø

具有两个带参构造方法:第一个构造方法中,设置学员的性别为男,专业为

LE,其余属性的值由参数给定;第二个构造方法中,所有属性的值都由参数给定。


编写测试类

Student2Test进行测试,分别以两种方式完成对两个Student2对象的测试化工作,并分别调用它们的自我介绍方法,看看输出结果是否正确。

——

提示

———————————————————————————————————


在学员类中定义两个构造方法完成初始化工作。

public  Student2(String  name, int  age) {}

public  Student2(String  name,int  age, String  sex, String  subject) {}

———————————————————————————————————————

5.

简述类的封装的定义、具体步骤和好处。


定义:隐藏类的一些具体实现,通过提供一些接口来实现一些功能,将类的状态信息隐藏在类的外部,不允许在类的外部直接访问,而是通过这个类提供的一些方法来对属性进行操作以及访问。

步骤:修改属性的可见性来限制对属性的访问;为每个属性创建一对赋值; (setter)方法和取值(getter)方法,用于对这些属性的存取;在赋值方法中,加入对属性的存取控制语句。

好处:(1)控制存取属性值的语句来避免对数据的不合理的操作

(2)一个封装好的类,是非常容易使用的

(3)代码更加模块化,增强可读性

(4)隐藏类的实现细节,让使用者只能通过程序员规定的方法来访问数据



版权声明:本文为yuan2yue原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。