在之前看过很多人都问过 this 、static、以及主方法的问题,我来挑重点的说说
THIS
1、调用类中的属性:this.属性
2、调用类中的方法:this.方法()
3、调用类中的构造方法:this()
4、表示当前对象:this
对于第三点,code如下:
class Person{
private String name ;
private int age;
public Person(){
System.out.println("新的对象产生了。") ;
}
public Person(String name){
this() ; // 调用无参构造
this.name = name ;
}
public Person(String name,int age){
this(name) ; // 调用有一个参数的构造方法
this.age = age ;
}
public void setName(String name){
this.name = name ;
}
public void setAge(int age){
this.age = age ;
}
public String getName(){
return this.name ;
}
public int getAge(){
return this.age ;
}
};
public class ThisDemo04{
public static void main(String args[]){
Person per = new Person("张三",30) ;
System.out.println(per.getName() + " --> " + per.getAge()) ;
}
};
注意:
1、所有构造方法应该是对象操作前最早调用的,所以使用this调用构造方法的时候所有代码必须放在构造方法的首行
2、在使用this调用构造方法的时候,至少有一个构造方法是没有使用this()调用的,而此方法(Person())将作为程序的出口,一般这个出口是无参构造方法
3、this表示当前对象:当前正在调用类中方法的对象,成为当前对象
STATIC
1、static声明的方法和属性都可以用类名直接调用(类名.static 属性)(static声明的属性在全局数据区)
2、static方法,只能调用static的属性及方法,不能调用非static的属性及方法。
(原因:静态的属性和方法可以在没有实例化对象的时候调用。而在类中,普通的方法和属性,只有在对象实例化之后才能调用)
MAIN 主方法含义
public static void main(String args[])
public : 表示最大权限,所有人都可以访问
static : 因为执行的时候执行的就是类名称,所以表示可以由类名称直接调用
void : 因为主方法是一切的起点,所以没有返回值
main : 系统内建的方法名称
String args[] : 表示字符串数组,用于接收参数
public class MainDemo {
public static void main(String[] args) {
for(int i=0;i<args.length;i++){
System.out.println(args[i]+"、");
}
}
}
用 CMD -->javac MainDemo.java -->java MainDemo 1 2 3 4 asd qwe (输入的参数都是
空格 隔开)
(假若要输出 hello world!!!,则用 ”“ 双引号 -- > ”hello world!!!“)
结果: 1、
2、
…
asd、
qwe、
程序内存划分:
栈内存:对象名称,实际上是对象对堆内存的应用地址
堆内存:属性和值
全局代码区 :保存所有的操作方法
全局数据区 :保存所有的static属性
自己总结的一点点,有错的地方欢迎大家指点和交流。谢谢