Java相关 关键字

                  何为关键字?     -----------指一些已经赋予了指定含义的词语。

< 一 >.   常用Java关键字

                  类相关: public, private, protected, class, implements,extends,interface, import,abstract;

                  方法函数/属性相关:void,return,static,final;

                  八大基本数据类型:int ,short, byte ,long,char, boolean, double, float;

                  循环判断相关:for, while,if,else,do, switch,case,default,break;

                  异常相关:try, catch, throw, throws, finally;

                  其他相关:new,this,super;

                  保留字相关:goto,const;

 

< 二 >.关键字详解

          1.   public,private,default,protected   访问权限介绍

 

 

 

            1 . 1   测试当前类访问权限 

            先创建一个学生类(属性有姓名(public),年龄(protected),学号(default),性别(private))

 

<pre name="code" class="java"><span style="font-size:18px;">package Date_07_05;

public class Student {
	public String name;
	protected int age;
	int number;
	private String sex;
	
	public void test()

	{
		Student stu = new Student();
		stu.name = "张三";
		stu.age = 12;
		stu.number = 1234;
		stu.sex = "男";
	}

	
}</span>
 

 

 

            程序通过------可以知道,public,protected,default,private修饰的属性,在当前类中可以被访问;

 

 

     

          1 . 2   测试同包不同类访问权限

          再创建一个测试类,两者在同一个包下。

 

<span style="font-size:18px;">package Date_07_05;

public class Test {
	
	public static void main(String[] args) {
		
		
		Student stu = new Student();
		stu.name = "张三";
		stu.age = 12;
		stu.number = 1234;
		stu.sex = "男";//此处会报错显示 The value of the field Student.sex is not used
	}}</span>

 

 

 

 

 

                   程序报错------可知  public,protected,default修饰的属性,在同包下不同类中可以被访问,而private修饰的属性不可以被访问;

 

          1 . 3  测试同包子类访问权限

          创建一个大学生子类继承student类

 

<span style="font-size:18px;">package Date_07_05;

public class UnStudent extends Student {
	public static void main(String[] args) {
		UnStudent us = new UnStudent();
		us.name = "张三";
		us.age = 12;
		us.number = 1234;
		us.sex = "男";//此处报错:The field Student.sex is not visible
	}

}</span>


                 程序报错----- 可知public,protected,default修饰的属性,在同包下子类中可以被访问,而private修饰的属性不可以被访问;

 

 

          1 . 4  测试不同包子类访问权限

          创建一个大学生类继承于学生类(位于另一个包)

 

<span style="font-size:18px;">package Date_07_05_2;

import Date_07_05.Student;

public class UnStudent extends Student{
	public static void main(String[] args) {
		UnStudent us = new UnStudent();
		us.name = "张三";
		us.age = 12;
		us.number = 1234;// 此处报错:The field Student.number is not visible
		us.sex = "男";//此处报错: The field Student.number is not visible
	}

}</span>


             程序报错----  可知public,protected修饰的属性,在不同包下子类中可以被访问,而default,private修饰的属性不可以被访问;    

 

 

 

 

        1 . 5  测试不同包访问权限

 

<span style="font-size:18px;">package Date_07_05_2;

import Date_07_05.Student;

public class UnStudent{
	public static void main(String[] args) {
		Student us = new Student();
		us.name = "张三";
		us.age = 12;// 此处报错:The field Student.number is not visible
		us.number = 1234;// 此处报错:The field Student.number is not visible
		us.sex = "男";//此处报错: The field Student.number is not visible
	}</span>
	
<span style="font-size:18px;">}</span>

 

            程序报错----  可知public修饰的属性,在不同包下可以被访问,而protected,default,private修饰的属性不可以被访问;   

 

 

 

 

          总结     

           

   同类  同包  不同包下子类   其他包
private   是      
default   是   是    
protected   是   是        是  
public   是   是        是       是

 

 

           2. this,super 关键字详解

 

        

           2 . 1   this详解

                     this调用当前类的对象:this .方法名(),this.属性名 , this . ();

            

<span style="font-size:18px;">package Date_07_05;

import java.io.Console;

public class Student {
    public String name;
    protected int age;
    int number;
    private String sex;
    
    public Student()
    {
        this("b");
        System.out.println("第一行");
        
    }
    public Student(String a)
    {
        System.out.println("第二行");
    }
 
    public void study(){
        //this 调用当前对象的属性
        this.name = "张三";
        this.age =   12;
        this.number = 1234;
        this.sex = "男";

        //this调用当前对象的方法
        this.paly();
        System.out.println("学习");
    }
    public void paly(){
        System.out.println("踢足球");
    }
    
    public static void main(String[] args) {
        //this调用构造函数
        Student stu = new Student();
        stu.study();

    
    }

}</span>
        


               输出结果为: 第一行
                                     张三踢足球
                                    李四踢足球
                                    张三踢足球

 

 

                        注意:this()和super()调用必须出现在第一行,否则程序报错;

 

 

 

 


           3 .  final 关键字详解
                   作用域:类、方法、属性、参数、局部变量

                   类:修饰类无法被继承;
                  方法:修饰方法无法被重写;
                  属性:修饰属性只能被赋值一次;

 

 

                  参数/局部变量:修饰参数/局部变量在生命周期内不能重新被赋值

 

 

 


          4 .   static 关键字详解
                   作用域:方法,属性,静态块。

 

 

                  方法:静态方法可以直接通过类名调用,任何的实例也都可以调用。

 

 

                  属性:静态变量在内存中只有一个拷贝,JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问,当然也可以通过对象来访问(但是这是不推荐的)。

 

 

<span style="font-size:18px;">package Date_07_05;

import java.io.Console;

import org.omg.CORBA.PUBLIC_MEMBER;

public class Student {
	public String name;
	public static String address;;
	//加载类的时候自动执行
	static{
		System.out.println("执行了静态快");
	}
	//创建类的对象的时候自动执行
	{
		System.out.println("执行了代码块");
	}
	


	package Date_07_05;

public class Test {
	
	public static void main(String[] args) {
		
		Student stu1 = new Student();
		Student stu2 = new Student();
		
		stu1.address = "衡阳";
		stu2.address = "长沙";
		Student.address = "广州";
		System.out.println(stu1.address);
		System.out.println(stu2.address);
		System.out.println(Student.address);
		
		stu1.name = "张三";
		stu2.name = "李四";
		System.out.println(stu1.name);
		System.out.println(stu2.name);
	}

}</span>

 

 

 

 

 

                

               程序输出结果: 执行了静态快
                                         执行了代码块
                                         执行了代码块
                                         广州
                                        广州
                                        广州
                                        张三
                                        李四

 

 

 

 

 

           

 

        

 

                    

        

 

 

 

 

 

 

 

 

 


                                         

 

 

 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值