Java笔记1

java构造函数

    super 语句

                如果父类中没有定义空构造函数,那么必须用super来指定哪个构造函数 
        注意:super语句必须定义在子类的第I行 因为父类的初始化要先完成
         最顶层的类object类
      
        对象在内存中的流程
                
                     

         

                一个对象的实例化过程

               1. jvm会读取指定路径下的class文件并加载进内存,
             并会加载父类进入内存
               2. 在对内存中开辟空间 分配地址
               3.在空间对象中,对对象中的属性进行默认初始化
                        

 
 

class FU{
    fu(){
    System.out.println("123");
    }
}



            继承的弊端:打破了封装性
   

 final的用法

                        

                        final固定的是显式初始化 
static final int X=4;
//变量大写

         为什么要使用final对象,直接使用该数据是可以的,但是阅读性 

抽象类
            

        抽象类必须复写抽象方法

            特点:

            

 
        细节:
                

 

                抽象类不可以和哪些关键字共存?
                
                abstract不能与private共存,因为,abstract的方法必定要覆盖,static不能共存
        因为是static并不需要对象,final不行,abstract覆盖,final不能覆盖 

                抽象类与一般类的联系与区别:
                 
                抽象类一定是父类吗?
                  

            作业:
                   
                   代码:
1 test类
 
package com.test;
public class Test {
    public static void main(String[] args) {
        int age=10;
        String name="le";
        double pay=15.2;
        Coder aCoder=new Coder("li", age, pay);
        aCoder.work();
        
        Manger aManger= new Manger(name, age, pay);
        aManger.work();
    }
}

2 Eployes抽象类
package com.test;
abstract class Employes {
    private String name;
    private int age;
    private double pay;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name=name;
    }
    
    public int getAge() {
        return age;
    }
    
    public void setAge(int age) {
        this.age=age;
    }
    
    public double getPay() {
        return pay;
    }
    
    public void  setPay(double pay) {
        this.pay=pay;
    }
    /*
     * 初始化对象就建立信息
     **/
     Employes(String name,int age,double pay) {
        this.age=age;
        this.name=name;
        this.pay=pay;
    }
     //创建一个抽象的工作函数
    abstract void work();
    
}

 3 Coder类
package com.test;
 class Coder extends Employes {
    Coder(String name, int age, double pay) {
        super(name, age, pay);
        // TODO Auto-generated constructor stub
    }
    
    String name=getName();
    int age =getAge();
    double pay =getPay();
    
    public void work() {
        System.out.println(name+"-----"+age+"-------"+pay+"work");
    }
    
}

4 Manger类
package com.test;
public class Manger extends Employes {
 Manger(String name,int age,double pay){
        super(name, age, pay);
    }
    
    
    void work(){
        System.out.println("1665626");
    }
}

发表评论