Java面向对象编程

1、编写一个类Teacher,代表教员,要求如下:a) 具有属性:姓名,年龄,其中年龄不能
小于26岁,否则输出错误信息b) 具有方法:自我介绍,负责输出该教员的年龄,姓名c) 编写测试类
TeacherTest进行测试,看是否符合要求。

class Teacher{
    private String name;
    private int age;
    public void setName(String name){
        this.name=name;
    }
    public String getName(){
        return name;
    }
    public void setAge(int age){
        if(age<26)
            System.out.println("错误信息b");
        else
            this.age=age;
    }
    public int getAge(){
        return age;
    }
    public void introduce(){
        System.out.println("教员的年龄为:"+getName()+"\t教员的姓名为:"+getAge());
    }
}

2、编写一个类Teacher2,代表教员,要求如下a) 具有属性:姓名,年龄,性别和专业 b)
具有方法:自我介绍,负责输出该教员的年龄,姓名,性别和专业c) 具有两个带参的构造方法,第一个
构造方法中,设置教员的性别为男,专业为Java,其余属性的值由参数给定,第二个构造方法中,所有
属性的值都由参数给定d) 编写测试类Teacher2Test,分别以两种方式完成对两个Teacher2对象的初始
化工作,并分别调用它们的自我介绍方法,看看输出结果是否正确。

public class Teacher2 {
    String name,sex,major;
    int age;
    public Teacher2(String name,String sex,int age){
        this.age=age;
        this.major="java";
        this.name=name;
        this.sex=sex;
    }
    public Teacher2(String name,String sex,int age,String major){
        this.age=age;
        this.major=major;
        this.name=name;
        this.sex=sex;
    }
    public void outPut(){
        System.out.println("该教员的年龄:"+age+"姓名:"+name+"性别"+sex+"专业"+major);
    }
}

public class Teacher2Test {
    public static void main(String[]args){
        Teacher2 teacher21=new Teacher2("zzx","男",19);
        Teacher2 teacher22=new Teacher2("lx","男",19,"c#");
        teacher21.outPut();teacher22.outPut();
    }
}

3、使用面向对象的思想描述游戏中的怪物问题描述某公司要开发新游戏,请用面向对象的思
想设计怪物类,设定属性包括:怪物名字、生命值、攻击力、 防御力;方法包括:攻击的方法,防御的
方法.
要求:1、通过构造函数实现属性赋值 2、攻击方法,描述攻击状态。内容包括怪物名字,生命值,攻
击力
3、防御方法通过输入参数接收攻击力。需要判断,如果攻击力小
于防御力,伤害值=0;反之伤害值=攻击力 -防御力
根据伤害值情况,显示不同的防御信息。内容包括怪物名字,
防御力,防御后的生命值.4、编写测试方法,通过构造函数实例化怪物类的对象,并调用相关方法(测
试数据信息自定)运行效果:
在这里插入图片描述

public class Monster {
    String monstername;
    int Hp,aggressivity,defense;
    public Monster(String monstername,int Hp,int aggressivity,int defense){
        this.monstername=monstername;
        this.Hp=Hp;
        this.aggressivity=aggressivity;
        this.defense=defense;
    }
    public void aggressivityMethod(){
        System.out.println("怪物"+monstername+"展开攻击");
        System.out.println("当前生命值是:"+Hp);
        System.out.println("攻击力是:"+aggressivity);
    }
    public void defenseMothod(int aggressivity){
        int value;
        if (aggressivity<defense) {
            System.out.println("防御成功!");
        }
        else {
            value = aggressivity - defense;
            Hp=Hp-value;
            System.out.println("防御失败!");
            System.out.println(monstername+"以"+defense+"的防御力未能抵御进攻");
            System.out.println("当前生命值为:"+Hp);
        }
    }
}

public class MosterTest {
    public static void main(String[]args){
        Monster monster=new Monster("怪小怪",300,10,20);
        monster.aggressivityMethod();
        monster.defenseMothod(25);
    }
}

4、简述你对this关键字的理解
1.this关键字调用成员变量,解决与局部变量的名称冲突问题。
2.this关键字调用其他构造方法只能在构造方法中调用不能在成员方法中调用。
3.this关键字调用构造方法的语句必须是该方法的第一条执行语句,且只能出现一次。
5、说说构造方法的特点
1.给成员变量进行赋值。
2.没有返回值
3.不能存在return语句
4.方法名与类名一样

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java是一种面向对象编程语言,因此Java编程是基于面向对象的思想进行的。面向对象编程是一种编程范式,它将现实世界中的概念和实体抽象成为对象,在程序中进行描述和处理。在Java中,每个对象都有自己的状态和行为,状态用变量表示,行为用方法表示。 在Java中,面向对象编程的三个核心概念是封装、继承和多态。封装指的是将数据和方法包装在一个中,对外部隐藏实现细节,只暴露必要的接口;继承指的是通过扩展现有的方式创建新,新可以继承现有的所有属性和方法,并可以添加自己的特性;多态指的是同一个方法可以被不同的对象调用,产生不同的行为。 在Java中,面向对象编程通过对象来实现。是一种模板,描述了一对象的共同属性和行为。对象则是的实例,具有该所定义的属性和行为。在Java中,使用关键字class来定义,使用关键字new来创建对象。例如,下面是一个简单的Java的定义: ``` public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public void sayHello() { System.out.println("Hello, my name is " + name + ", and I am " + age + " years old."); } } ``` 这个有两个私有属性`name`和`age`,一个公有构造函数用来初始化对象的属性,还有一个公有方法`sayHello`用来输出对象信息。创建对象的代码可以这样写: ``` Person p = new Person("John", 30); p.sayHello(); ``` 这段代码创建了一个名为`p`的`Person`对象,调用`sayHello`方法输出对象信息。 以上是Java面向对象编程的基本介绍,希望对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值