`
李瑞辉++
  • 浏览: 20696 次
  • 性别: Icon_minigender_1
  • 来自: 信阳
社区版块
存档分类
最新评论

KeyWords Summary

 
阅读更多
                        关键字 小结
    关键字就是对于具有任何编程语言起修饰限定的作用,并给予编译器以特殊指令的一系列字符串.
一. 访问控制符(4): public, protected, default, private
   public:该域里面的内容是任何成员都可以访问的,只要在访问前导入了该类所在的包
  protected: 访问类必须和被访问类在同一个包里面,或者访问类是被访问类的子类
  default : 该修饰符是指直接在类里面定义数据变量或者类变量以及类方法的时候不带任何修饰符;并且访问类和被访问类必须在同一个包里.
private域:该关键字定义的东西只有该类本身可以访问,其他类以及子类都不可以直接访问该成员
以上的概括的结果可以用下面的表格表示:


访问控制符使用原则:只要能满足需要,访问权限越小越好,太多的的Public 就相当有一个赤裸裸的人站在你的面前,毫无秘密,而且可以随便修改,所以宁愿多写一些代码,但也要给自己的代码多一点抵抗力
二. Final变量修饰符:
1. 当final用于变量的时候,如果该变量为一个八种基本变量(boolean、byte、char、double、float、int、long、short)时,表示该变量存在内存里面的值为一个常量,不可更改, final 修饰的属性必须进行初始化(可以在 “属性定义时”进行 也可以 在“构造函数里”进行)



2.当final用于一个方法的时候,表示该方法不可以被继承,即使该方法为public修饰符,这个方法也不可以被子类继承,只能被子类调用,而不能重写
3.当final用于一个类定义的时候,表示该类不可以有子类,这里可以引申一点:abstract和final两个关键字是不可以同时出现的
4.当final用于变量的时候,如果该变量为一个符合变量,即Java中继承于Object的变量,表示该引用不可以指向其他的对象,但是并不代表该引用指向的对象不可更改//网上找的????
三. Static变量修饰符:
使用关键字为static关键字,这种变量可以直接通过Class.AA的方式来调用,而且不需要对象实例存在就可以调用,它的执行原理在于当JVM的类加载器将类加载进来的时候,这个变量就已经存在的,而且可以使用了
下面的a 就是指一个类变量,可以通过Mystatic.a 来使用:
示例1:下面是淘宝的笔试题,经过改造基本可以概括static大部分属性:
//A类
	public class A{
		public A() {
			// TODO Auto-generated constructor stub
			System.out.println("A");
		}

	}
//B类
public class B extends A{
		public B() {
			// TODO Auto-generated constructor stub
			System.out.println("B");
		}

	}
	

//实现

public class Mystatic {
	
	static A a = new A();//第一个加载,输出 A
	B b = new B();//类属性只有创建对象时才会加载,而且会在构造器之前完成加载
	
	public Mystatic() {//加载完属性和代码块之后才会调用
		// TODO Auto-generated constructor stub
		System.out.println("C");
	}
	
	public static void main(String args[]){//第二个加载,main 是在静态方法和静态代码块加载完了
		                                   // 之后才会调用
	/*	System.out.println("F");	*/
		
	/*	Mystatic mystatic = new Mystatic();//创建对象*/
		
		Mystatic.sys();//用类名直接调用静态方法,因为静态方法(又名类方法)是属于类的
		
	}
	
	
	/*静态方法先加载但暂不执行,只有调用之后才会执行 */	
	public static void sys(){//第二步但不执行
		B b1 = new B();
	}	
	
	/*代码块*/
	/*{//只有创建对象时才会加载
		System.out.println("D");
	}
	
	/*静态代码块*/
	/*static{//第三步而且立即执行
		
		System.out.println("E");	
		
	}*/
  
	
}





以上程序的输出结果为:A E F A B D C A B

示例二:下面是一道”多态”的程序,但加上static味道就变了
//父类
        static  String name;
	public MyFinal() {
		// TODO Auto-generated constructor stub
		//调用当前类的某一个构造函数,可以调用多个,但至少有一个
		this("AAA");
	}
	
	public MyFinal(final String name){
	    //name = "kkk";//把形参声明为final 可以防止此处进行修改
		this.name = name;
		
	}
	
	public static void showMessage(){
		
		System.out.println(name+"is good!");
		
	}
//子类
public class MyFinalChild extends MyFinal {

	
	/*这个构造函数系统会默认给出*/
	/*public MyFinalChild() {
		// TODO Auto-generated constructor stub
		super();
	}*/
	
	public MyFinalChild() {
		// TODO Auto-generated constructor stub
		super("---->BBB");//调用个父类的构造函数
	}
	
	public static void showMessage() {
		// TODO Auto-generated method stub
		System.out.println(name+"is not good!");
	}
}
//测试类
public class TestFinal {	
	
	public static void main(String[] args) {
		
		MyFinal myFinal1 = new MyFinal();
		MyFinalChild finalChild1 = new MyFinalChild();
		myFinal1.showMessage();
		finalChild1.showMessage();
		
		String string = "////////////////////////////////////////////////";
		System.out.println(string);
		
		MyFinal myFinal2 = new MyFinal();
		MyFinal finalChild2 = new MyFinalChild();/*用“父类声明子类对象” 会 “自动向上转型”*/
		myFinal2.showMessage();
		finalChild2.showMessage();		
		 
	}
	


    下面是结果:


其实上面并不是以前学的多态,多态是对于非静态属性与方法的,当使用了static修饰的 静态属性与方法,至于对象前面的类名有关,所以用类名MyFinal修饰对象或子类对象时,结果是一样的……..

四. 变量引用:super、this
Super和this的作用差不多,两者都用在类的构造器里,而且只能使用一次,且只能放在第一行,否则会有错误提示:
”Constructor call must be the first statement in a constructor”
使用方法在上一部分的代码里就有,所以就不赘述..

  
以上只是我稍微了解的部分的,还有好一些暂不了解,以上写的不对的地方,大家指正…..

分享到:
评论

相关推荐

    字符串处理类

    /// <summary> /// 是否包含字符串,可以直接. /// </summary> /// 字符串. /// 被查找的字符串. /// <returns></returns> public static bool Contains(string text, string patten) { //去掉收尾的扩展“%...

    EBS-FA-固定资产-开发总结

    19. FA_DEPRN_SUMMARY:存储资产的折旧汇总信息,包括折旧金额、折旧率等。 20. FA_INVOICE_TRANSACTIONS:存储资产的发票交易信息。 二、基本功能操作 EBS固定资产FA模块提供了以下基本功能操作: 1. 资产管理:...

    站内搜索 asp

    简单搜索引擎 搜索Description字段 搜索Keywords字段 搜索Title字段 搜索Summary字段

    jsonresume-theme-elegant:jsonresume的优雅主题

    projects[0].highlights , education[0].courses , volunteer[0].summary , volunteer[0].highlights , awards[0].summary , publications[0].summary , references[0].reference , skills[0].keywords 。...

    Low-Power VLSI Circuits and Systems

    Each chapter is provided with an abstract and keywords in the beginning and a chapter summary, review questions and references at the end to meet pedagogical requirements of a textbook. This will ...

    Python-summa用于在Python3中进行文本摘要和关键字提取的TextRank实现

    summary = summarize(text, method='textrank', ratio=0.2) print(summary) ``` 在这个例子中,`method='textrank'` 指定了使用TextRank算法,`ratio=0.2` 表示摘要长度为原文的20%。 `summanlp-textrank-6844bbe`...

    TestlinkConvert_FP2_V6.17.12.2.zip

    满足不同层次用户的需求,完美实现“Testsuite、CaseID、CaseName、Summary、Preconditions、Step Actions、Expected Results、Execution、Status、Importance、Execution Type、Estimated exec、Keywords、...

    Python-TextRank4ZH从中文文本中自动提取关键词和摘要

    keywords = tr4w.get_keywords(10) # 获取前10个关键词 tr4s.analyze(text=text, lower=True) summary = [s.content for s in tr4s.sentences] # 获取摘要句子 ``` 5. 输出结果: ```python print("关键词:", ...

    SQL关键字转换大写核心算法实现

    /// <summary> /// SQL关键字转换器 /// </summary> public class SqlConverter : IKeywordsConvertible { public SqlConverter(string[] keywords) { Keywords = keywords; } public SqlConverter() { } ...

    API精灵源码(C#编)

    /// <summary> /// Form1 的摘要说明。 /// 这个版本没有使用oleDbDataAdapter+DataSet对数据进行存取,而是使用的OleDbCommand +OleDbDataReader 的形式。 /// 主要是想试验一下不用oleDbDataAdapter+...

    SWAT assessment tool

    and parameters published in these articles to provide a succinct guide to complement a previous SWAT model summary. Recent SWAT developments in landscape representation, stream routing, and soil P ...

    asp简单的搜索引擎代码.pdf

    - `Summary`:网页摘要。 - `Keywords`:网页关键词,同样创建了索引以支持无重复值的快速查找。 2. 搜索过程: - 用户在网页的输入框中输入查询字符串,点击提交按钮后,表单数据通过POST方法发送到`doquery....

    Python库 | headlines-0.0.0a2-py3-none-any.whl

    keywords = analyzer.extract_keywords("新闻标题") summary = analyzer.generate_summary("新闻内容") ``` `headlines`库的0.0.0a2版本表明这是一个早期的alpha版本,可能存在不稳定或未完善的特性。因此,在使用...

    testlink-1.9.13_20170418.rar

    完美实现“Test suite、Case ID、Title、Summary、Preconditions、Step actions、Expected Results、Execution、Execution type、Test importance、Keywords、Requirements、Custom Fields”

    aqoc.github.io:有关命令的问题

    aqoc.github.io 有关命令的问题 这是与命令/地图制作相关的常见问题集,旨在实现超链接:trade_mark:。 它还具有搜索功能,因此您可以搜索问题。... - only use keywords --- layout应始终为faq (除非您要创

    (word完整版)冲击响应谱计算的matlab程序.doc

    Keywords: 冲击响应谱,Matlab,冲击响应谱计算,加速度时间历史记录 Content Summary: 本程序主要包括以下几个部分: 1. 输入加速度时间历史记录:用户可以选择从外部ASCII文件或从Matlab中加载加速度时间历史...

    the_fortran_2003_handbook

    About this book Comprehensive coverage for anyone who wants a comprehensive survey of Fortran 2003, including those familiar with programming language concepts but unfamiliar with Fortran ...Keywords:

Global site tag (gtag.js) - Google Analytics