java中级总结

1.类与对象

  • 类:类是一个模板,它描述一类对象的行为和状态。

  • 对象:对象是类的一个实例,有状态和行为。

    类包括有
    1.局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
    2.成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
    3.类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。

  • 构造方法:每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认的无参构造方法。

2.this与static

  • this:this 是自身的一个对象,代表对象本身。用法为:

     1.普通的直接引用
     2.形参与成员名字重名,用 this 来区分

//声明一个自定义对象
public class emp {
    private String name;
    public emp(String name) {
      //this 同名时,用来区别方法形参与成员变量
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
      //this 同名时,用来区别方法形参与成员变量
        this.name = name;
    }
}
//测试类
public class test {
    public void t1(){
        emp emp = new emp("gui");
        System.out.println(emp.getName());
    }
}
//运行结果
   gui

  • static:在类中,用static声明的成员变量为静态成员变量,也成为类变量,方法称为静态方法,代码快称为静态代码块类变量的生命周期和类相同,在整个应用程序执行期间都有效
  • 静态方法与非静态方法区别
    1.静态变量被所有对象共享,在内存中只有一个副本,在类初次加载的时候才会初始化
    2.非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响
  • static修饰的方法的调用: 类名.方法();

3.面向对象三个特性

3.1封装

  • 封装:将抽象性函式接口的实现细节部分包装、隐藏起来的
  • 封装的优点: 1. 封装能够减少耦合
                           2.类内部的结构可以自由修改。
                           3.可以对成员变量进行更精确的控制。
/**封装自定义对象*/
public class Person{
  //将属性的访问修饰符改为私有
   private String name;
   private int age;//添加对外界访问的方法
   public int getAge(){
     return age;
   }
   public String getName(){
     return name;
   }
   public void setAge(int age){
     this.age = age;
   }
   public void setName(String name){
     this.name = name;
   }}
   /**测试自定义对象*/
    public class Test {
    @Test
     public void t1(){
     Person  person = new  Person();
     person.setName("gui");
     person.setAge(20);
     System.out.print("Name:"+person.getName()+",  Age : "+person.getAge());
   }
   }
   /**运行结果*/
   Name:gui,Age:20

3.2继承

  • 继承:子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
  • 继承的特点:1.子类拥有父类非 private 的属性、方法。
                           2.子类可以拥有自己的属性和方法,即子类可以对父类进行扩展
                           3.子类可以用自己的方式实现父类的方法(方法重写)
  • 继承关键字:extends,implements,因为Java继承是单继承,使用implements关键字可以变相的达到多继承效果
/**父类user*/
public class user {
    private String name;
    private int age;
    public user() {
    }
    public user(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void eat(){
        System.out.println(name+"正在吃");
    }
}
/**接口emp*/
public interface emp {
    public void sleep(String name);
}
/**user02继承user类并且引用emp接口*/
public class user02 extends  user implements emp {
    public user02(String name, int age) {
        super(name, age);
    }
    @Override
    public void sleep(String name) {
        System.out.println(name+"在睡觉");
    }
}
/**测试类*/
 public class Test {
   @Test
    public void test02(){
        user02 user =new user02("gui",20);
        user.eat();
        user.sleep(user.getName());
    }
 }
 /**运行结果*/
 gui正在吃
 gui在睡觉

3.3多态

  • 多态就是同一个接口,使用不同的实例而执行不同操作,当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。
/**父类*/
public abstract class Animal {  
    abstract void eat();  
}  
/**子类*/ 
public class Cat extends Animal {  
    public void eat() {  
        System.out.println("吃鱼");  
    }  
    public void work() {  
        System.out.println("抓老鼠");  
    }  
}  
 /**子类*/ 
public class Dog extends Animal {  
    public void eat() {  
        System.out.println("吃骨头");  
    }  
    public void work() {  
        System.out.println("看家");  
    }  
}
/**测试代码*/ 
 public class Test {
   @Test
    public void test01(){
     Animal a = new Cat(); 
      a.eat();               
      Cat c = (Cat)a;       
      c.work();        /
  }  
  /**运行结果*/ 
    吃鱼
    抓老鼠

4.内部类

  • 内部类大致分为四种
内部类名称说明
成员内部类最普通的内部类,即在类中在定义一个类
局部内部类即定义在一个类的方法或者一个作用域里面的类
匿名内部类即不定义名字的内部类
静态内部类修饰符为static的成员内部类

成员内部类:成员内部类访问外部类时可以无条件访问外部类的所有成员属性和成员方法,外部类访问访问成员内部类的成员,必须先创建一个成员内部类的对象,再通过指向这个对象的引用来访问;

//内部类访问外部类演示
public class user {
    public static age=10
    class emp {     //内部类
        public void getage() {
          //打印结果为10,可以直接调用
            System.out.println(age);
        }}}

        //外部类访问内部类演示
    public class user {
      //使用emp里面的内容时调用t1()方法
    public emp t1(){
    return new emp;
   }
    class emp {     //内部类
        public void haha() {
            System.out.println("哈哈");
        }}}

局部内部类:局部内部类就像是方法里面的一个局部变量一样,是不能有 public、protected、private 以及 static 修饰符的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 中级Java开发工程师需要具备良好的编程技能,熟悉Java语言,熟悉常用的开发技术和工具,包括Java EE,Spring,Hibernate等;理解常用的设计模式,能够运用合适的技术来解决复杂的业务问题;具备良好的文档编写能力;能够独立完成模块级功能的开发;能够参与系统的整体设计和开发调试;具备良好的沟通能力和团队合作精神;学习能力强,能够快速接受新技术。 ### 回答2: Java中级开发工程师是指在Java开发领域具备一定的经验和技能,能够独立完成中等难度的开发任务,并能够与团队成员协作完成项目。 首先,Java中级开发工程师需要具备扎实的Java基础知识和编程能力,包括面向对象的理解、Java核心类库的使用、IO操作、多线程编程等。同时,对于常用的开发框架和工具也要有一定的掌握,比如Spring框架、Hibernate、MyBatis等。 其次,Java中级开发工程师需要具备良好的数据库设计与操作能力,能够独立设计和优化数据库结构,熟悉SQL语言,能够编写高效的数据库查询语句和存储过程。 再次,Java中级开发工程师还应该具备良好的团队协作能力和沟通能力,能够与其他团队成员有效地合作,并能够准确理解和执行项目需求。 此外,Java中级开发工程师需要具备一定的问题解决能力和学习能力,能够快速定位和解决开发过程中遇到的问题,并善于学习新的技术和知识,保持与行业的同步。 总结而言,Java中级开发工程师需要掌握扎实的Java编程基础,熟练使用开发框架和工具,具备优秀的数据库设计和操作能力,具备良好的团队协作和沟通能力,同时具备问题解决能力和学习能力。 ### 回答3: Java中级开发工程师是一个对Java编程语言具有熟练掌握的职位。对于一名Java中级开发工程师,具备以下要求: 1. 扎实的Java编程基础:拥有扎实的Java编程基础,熟悉Java语法、面向对象编程以及常用的核心类库等。 2. 熟悉Java开发环境和工具:熟悉常用的Java开发环境和工具,如Eclipse、IntelliJ IDEA等,具备独立进行Java程序的开发和调试能力。 3. 掌握常用的Java框架和技术:熟悉常用的Java开发框架,如Spring、Hibernate等,并具备基本的使用经验。了解并掌握常用的开发技术,如Web开发、数据库开发等。 4. 熟悉前端开发技术:具备一定的前端开发技术,如HTML、CSS、JavaScript等,能够进行前后端的数据交互。 5. 理解软件开发流程和常用设计模式:了解软件开发的基本流程,包括需求分析、系统设计、编码、测试和维护等。了解常用的设计模式,并能够在实际开发中灵活运用。 6. 具备良好的问题解决能力和团队协作能力:能够独立解决常见的技术问题,具备良好的学习能力和问题分析能力。同时,具备良好的团队协作能力,能够与他人进行良好的沟通和协作合作。 如果你希望成为一名Java中级开发工程师,希望通过这些要求来提升自己的技能和能力,建议在工作中积极主动地学习和实践,并不断提升自己的编程能力和解决问题的能力。此外,参加一些与Java开发相关的培训或认证,如Java SE证书,也能够提高自己的竞争力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值