javascript this 和 java this 用法

// super 关键字表示父类的意思
// this 变量代表对象本身
// 当类中有两个同名变量,一个为类的成员变量,一个属于某个特定方法,使用this可以区分开成员变量和局部变量
// 可以使用super 访问父类被子类隐藏的变量或覆盖的方法 super.XX();

// 使用this 表示当前调用方法的对象的引用
// 希望在方法的内部获得当前对象的引用,可以使用关键字this,this 关键字只能在方法内部使用 表示"调用方法的那个对象的引用"

// <[Constructor call must be the first statement in a constructor]>
class Person {
    public static void prt(String s) {
       System.out.println(s);
    }
 
    // 父类无参数构造方法
    Person() {
       prt("A Person.");
    }
 
    
    Person(String name) {
       prt("A person name is:" + name);
    }
}
 
// [如果]调用super() 必须写在子类构造方法的第一行 否则编译不通过 每个子类构造方法的第一条语句都会隐含调用super()
// 如果父类没有这种形式的构造函数,那么编译就会出错

// super()和this()类似,区别是,super从子类中调用父类的构造方法,this()在同一类内调用其它方法

// super()和this()均需放在构造方法内第一行[要么不用 要么放在第一行]

// this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,
// 其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通

// this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。
public class Chinese extends Person {

	    Chinese() { 
	       super(); // 调用父类构造方法(1) 
	       prt("子类·调用父类”无参数构造方法“: "+"A chinese coder."); 
	    } 
	    
	    Chinese(String name) { 
	       super(name);// 调用父类具有相同形参的构造方法(2) 
	       // this(); // Constructor call must be the first statement in a constructor
	       prt("子类·调用父类”含一个参数的构造方法“: "+"his name is " + name); 
	    } 
	    
	    Chinese(String name, int age) { 
	       this(name);// 调用具有相同形参的构造方法(3) 
	       prt("子类:调用子类具有相同形参的构造方法:his age is " + age); 
	    } 
	    
	    public static void main(String[] args) { 
	    	//  this(); Constructor call must be the first statement in a constructor
	       Chinese cn = new Chinese(); // new 一个对象的时候 会调用相应的构造方法
	       cn = new Chinese("rufus"); // new 一个对象的时候 会调用相应的构造方法
	       cn = new Chinese("cathy", 18); // new 一个对象的时候 会调用相应的构造方法
	      
	    } 
}
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>JAVASCRIPT 用法</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<script type="text/javascript">
	   function introduce()
	   {
	   		alert('hello, i am Laruence \r\n');
	   }
	   
	   // 定义在全局的函数,函数的所有者就是当前页面,也就是window对象
	   // 定义在全局的函数,其实也就是window 对象的一个方法
	   // 可以通过函数名直接调用,也可以通过window.方法名来调用,这时,方法中的this 关键字指向它的所有者window对象
	   window.introduce();
	   
	   var name = "Larence";
	   
	   function brifY()
	   {
	   		alert(this.name);
	   }
	
	   window.brifY();
	   
	   // alert(window.brifY); // window 对象的 brifY 属性
	   
	   function passname(value)
	   {
	   		alert('上传文件的名称是:' + value);
	   }
	   
	</script>
  </head>
  
  <body>
    <!-- javascript中  一切皆对象 函数也是 -->
    <!-- 在javascript 中this 永远指向函数(方法)的[所有者] -->
    <!-- 定义在全局的函数 函数的所有者就是当前页面 也就是window 对象 -->
    
    <!-- 在dom中 访问form表单元素方法form表单元素的值 只需要使用id.value就可以了 -->
    <!-- 在dom中 form表单元素也是对象,表单元素的事件是form表单元素的属性 事件函数中的this自然是指向当前form元素了 -->
    
    <form action="" id="myform" name="myform" method="post" enctype="multipart/form-data">
          要上传的文件名称 :<input id="myinput" name="myinput" onclick="passname(this.value);" /><br/>
            上传文件的作者 :<input id="name"  name="name" value="rufus" onclick="passname(this.value);" /> <br/> 
          选择要上传的图片 :<input type="file" name="fileUp" id="fileUp" onchange="myinput.value = this.value"/>  <br/> 
            表达元素的类型 :<input type="file" name="fileUp" id="fileUp" onchange="myinput.value = this.type"/>  
    <input type="submit" value="上传" />  
    </form> 
  </body>
</html>




阅读更多
想对作者说点什么? 我来说一句

js和javascript

2014年06月15日 4KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭