黑马程序员----接口

Java与Android开发技能培训
 

-------android培训java培训、期待与您交流! ----------

1.class 用于定义类
2.interface 用于定义接口
3.定义格式如下:
    常量:public  static  final  大写 
    方法:public abstract
4.接口中的成员都是 public
5.接口不可以创建对象,需要被子类实行
6.接口可以被类多实现


interface Inter
{  
    public static final int NUM = 5;
    public abstract void show();
}

class   InterfaceDemo
{
    pulbic static void main(String args[])
    {
       System.out.println();
       Test t = new Test();
       System.out.println(t.NUM);
       System.out.println(Test.NUM);

    }
}


class  Test  implements  inter,InerA
{
    public  void show()
    {
         System.out.println();
    }
    public abstract void max()
    {
         System.out.println();
    }
}


interface  InerA
{
     public abstract void max();
}

 

引用类型:      接口--------------类-------------------数组


<----------------多态-------------------->


abstract class  Animal
{
   public abstract void eat();
}
class Cat extends Animal()
{
   public  void eat()
   {
        System.out.println("吃鱼");
   }
   public void catcth()
   {
         System.out.println("抓老鼠");
   }
}
class  Dog extends Animal
{
   public  void eat()
   {
       System.out.println("骨头");
   }
}

public class  Demo
{
  public static void main()
  {
      Cat  c  = new Cat();
      Dog   d =  new Dog();
      c.eat();
      d.eat();
  }
 
  public static void  function(Cat c )
  {
       c.eat();
     
  } //作用封装方法<*********************************>
    public static void  function(Dog d  )
  {
       d.eat();
     
  } //作用封装方法
}

<-----------------多态 转型-------------------->

class DuoTaiDemo
{
 public static void main(String args[])
 {
     Animal  a = new Cat ();    //类型提升,向上转型    
     a.eat();

    // 想用子类的方法,将父类的引用转换成子类

     Animal  a = new Cat ();
            Cat c  = (Cat) a ;
     c. catcth();
 }
}

function(new Cat());
function(new Dog());
public static void function(Animal a)
{
    if(a instanceof Cat)
    {
       
    }
    if(a instanceof Dog)
    {
        
    }
}


面向对象多态实例


interface  PCI
{
    public void  open();
    public void  close();
}

class MainBoard
{
    public void run()
    {
        System.out.println(" run ");
    }
    public void userPCI(PCI P)    //PCI p  =  new NetCard()
    {
         if(p!=null)
  {
      p.open();
      p.close();
  }
    }

}

class NetCard implements PCI
{
    public void  open()
    {
       System.out.println(" open ");
    }
    public void  close ()
    {
         System.out.println(" close ");
    }
}

class Demo
{
     public static void main(String args[])
     {
         MainBoard  mb = new MainBoard();
  mb.run();
         mb.userPCI(null);
  mb.userPCI(new NetCard() );
        
     }
   
}

 

-------android培训java培训、期待与您交流! ----------

详细请查看:http://edu.youkuaiyun.com/heima/

 

 

### 关于JavaWeb部门管理模块的实现方法 在JavaWeb开发中,部门管理是一个常见的功能需求。通常情况下,该功能涉及增删改查(CRUD)操作。以下是针对修改部门这一具体场景的设计思路和代码示例。 #### 数据库设计 假设有一个`department`表用于存储部门信息,其结构如下: | 字段名 | 类型 | 描述 | |--------------|-------------|----------------| | id | INT PRIMARY KEY | 主键 | | name | VARCHAR(100) | 部门名称 | | description | TEXT | 部门描述 | #### 后端逻辑实现 ##### 控制器层 (Controller) 控制器负责接收前端传来的数据并调用服务层处理业务逻辑。以下是一个基于Spring MVC框架的示例: ```java @RestController @RequestMapping("/departments") public class DepartmentController { @Autowired private DepartmentService departmentService; /** * 修改部门信息接口 */ @PutMapping("/{id}") public ResponseEntity<String> updateDepartment(@PathVariable Integer id, @RequestBody Department department) { try { department.setId(id); departmentService.updateDepartment(department); return ResponseEntity.ok("更新成功"); } catch (Exception e) { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("更新失败:" + e.getMessage()); } } } ``` 上述代码实现了通过RESTful API的方式提供修改部门的功能[^2]。 ##### 服务层 (Service) 服务层主要封装具体的业务逻辑,例如校验输入参数、调用DAO层等。 ```java @Service public class DepartmentService { @Autowired private DepartmentDao departmentDao; public void updateDepartment(Department department) throws Exception { if (department == null || department.getId() == null) { throw new IllegalArgumentException("部门ID不能为空"); } int result = departmentDao.updateById(department); if (result != 1) { throw new RuntimeException("未找到对应的部门记录"); } } } ``` 此处的服务层采用了简单的异常抛出机制来确保错误能够被及时捕获并反馈给客户端[^3]。 ##### DAO层 (Data Access Object) DAO层专注于与数据库交互的操作。这里可以借助MyBatis框架简化SQL语句编写过程。 ```xml <!-- MyBatis Mapper XML --> <update id="updateById" parameterType="com.example.model.Department"> UPDATE department SET name = #{name}, description = #{description} WHERE id = #{id} </update> ``` 以上XML片段展示了如何利用MyBatis动态替换占位符从而执行更新查询[^4]。 #### 前端页面展示 对于前端部分,可以通过HTML+JavaScript组合或者采用Vue.js/Angular这样的现代前端框架构建用户界面。下面给出一个基本的例子: ```html <form onsubmit="return saveChanges();"> <input type="hidden" id="deptId" value="${department.id}"> 名称:<input type="text" id="deptName" value="${department.name}"><br><br> 描述:<textarea id="deptDesc">${department.description}</textarea><br><br> <button type="submit">保存更改</button> </form> <script> function saveChanges() { var deptId = document.getElementById('deptId').value; var deptName = document.getElementById('deptName').value; var deptDesc = document.getElementById('deptDesc').value; fetch(`/departments/${deptId}`, { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: deptName, description: deptDesc }) }).then(response => response.text()) .then(result => alert(result)); return false; // 阻止默认提交行为 } </script> ``` 此脚本允许管理员填写新的部门详情并通过AJAX请求发送至服务器进行持久化存储。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值