Day1

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)隐藏类的实现细节,让使用者只能通过程序员规定的方法来访问数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值