Java基础知识1.4 一部分非访问修饰符

   static: static是用来申明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝,局部变量不能申明为static

static修饰的方法叫做静态方法,静态方法不能使用类的非静态变量。静态方法是从参数列表得到数据,然后计算这些数据。

package class3;

import java.util.Date;

public class MainClass {
		
	public static int a = 10;	
	
	public static final String name = "张三";
	
	public static final int b = a;
	
	public static void main(String[] args) {
		
		//name = "李四"; //此处会直接报错。
		
		a = 20;
		
		System.out.println("final修饰的引用变量发生改变 改变的值为"+a);

	}
	
}

  final:final的引用不能改变,但是final修饰的变量的值是可以改变的;此处稍作解释:final修饰的变量就相当于一个常量,其值是不能改变的,但是当final修饰的变量是一个引用变量,那么这个引用变量的地址就不能改变,但是引用变量内部的内容是可以改变的,就像你记住了人家的门牌号,但是你不能确定人家家里面有哪些人,可能有新生儿,可能结婚了增加了一位新人等。Final类不能被继承,没有任何的类可以继承final类的任何特性;

 

package class3;

public class MainClass {
        
    public static int a = 10;    
    
    public static final String name = "张三";
    
    public static final int b = a;
    
    public static void main(String[] args) {
        
        //name = "李四";//此处会直接报错
        
        a = 20;
        
        System.out.println("final修饰的引用变量发生改变 改变的值为"+a);
        
    }
    
}

 


  abstract: 利用abstract修饰的类称之为抽象类,抽象类不能够实例化对象,但是可以利用类来继承抽象类 继而使用抽象类,抽象类中可以没有抽象方法,但是抽象方法一定要存在于抽象类中。利用abstract修饰的方法 我们称之为抽象方法,抽象方法是不能够直接被使用的,必须利用子类实现抽象方法所在的类来使用抽象方法,抽象类中的抽象方法一定要被子类所继承,除非该子类是抽象类,一个类只能继承一个抽象类,但一个类可以实现多个接口。

 

main:

  

package class3;

import java.util.Date;

public class MainClass {
		
	SonClass staff = new SonClass();
		
	staff.name = "gwl";
	staff.age = 25;
	staff.job ="打杂";
	Date date_hiredate = new Date();
	date_hiredate.setTime(2020-2-29);
	
	Date date_birthday = new Date();
	date_birthday.setTime(1994-8-1);
	
	staff.setHiredate(date_hiredate);
	staff.setBirthday(date_birthday);
	
	staff.setSalary(8900.150);
	staff.setIDCard(1035063);
	
	System.out.println(staff.toString());	

	staff.toString();
		
	}
	
}

 abstract修饰的父类

package class3;

import java.util.Date;

public abstract class AbstractTest {
    
    public String name;
    public int age;
    public String job;
    
    private long idCard;
    private double salary;
    private Date hiredate;
    
    //预留重写构造方法;
    
    public long getIDCard() {
        return idCard;
    }
    public void setIDCard(long idCard) {
        this.idCard = idCard;
    }
    public double getSalary() {
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
    public Date getHiredate() {
        return hiredate;
    }
    public void setHiredate(Date hiredate) {
        this.hiredate = hiredate;
    }
    
    @Override
    public String toString() {
        // TODO Auto-generated method stub
        return name+ "" +age+ "" +job+ "" +getIDCard()+ "" +getSalary()+ "" +getHiredate();
    }
    
}

子类继承上述父类

package class3;

import java.util.Date;

public class SonClass extends AbstractTest{
    
    private Date birthday; //新增的变量

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    
    @Override
    public String toString() { 
        // TODO Auto-generated method stub
        return name+ "" +age+ "" +job+ "" +getIDCard()+ "" +getSalary()+ "" +getHiredate()+getBirthday();
    }
    
}

 

猜你喜欢

转载自www.cnblogs.com/givenline/p/12405608.html