Java中主类中定义⽅法加static和不加static的区别
Java中主类中定义⽅法加static和不加static的区别(前者可以省略类名直接在主⽅法调⽤(类名.⽅法),后者必须先实例化后⽤实例调⽤)知识点:1.Getter and Setter 的应⽤
2.局部变量与成员变量(也可叫做全局变量)
3.Static关键字的⽤法
a.成员变量被static修饰后的所有类的共享属性
b.⽅法被static修饰之后,在本类内调⽤的类名省略问题;以及不⽤Static,即使在本类内也必须先实例化
4.This关键字的⽤法
this:是当前类的对象引⽤。简单的记,它就代表当前类的⼀个对象。
注意:谁调⽤这个⽅法,在该⽅法内部的this就代表谁。
this的场景:
解决局部变量隐藏成员变量
*/
//定义学⽣类
class Person
{
//姓名
private String name="刘德华";
//年龄
private int age=45;
//所有对象共享的属性⽤static修饰,可以直接被类名直接调⽤
static String country = "中国";
/
/姓名获取值
public String getName()
{
return name;
}
//姓名设置值
public void setName(String name)
{ //name = "林青霞";
//name = name; //变量的使⽤规则:就近原则
//这⾥是类名,⽬前还没有说过类似的⽤法,所以这个是有问题的static修饰的变量
//这⾥的调⽤只能通过对象名
/
/这个对象如果存在,它应该代表的是Student的⼀个对象。
//那么,谁能够代表当前类的对象呢? java就提供了⼀个关键字 this
//Student.name = name;
this.name = name;
}
//年龄获取值
public int getAge()
{
return age;
}
//年龄赋值
public void setAge(int age)
{
this.age = age;
}
}
//测试类
public class PersonClass
{
public void show()//定义⾮静态⽅法,必须经过实例化后才能调⽤
{
System.out.println("哈哈");
}
public static void show2()//但是当以静态⽅法后,可以直接⽤类名.函数名
//调⽤,在本类内,类名可以忽略,这就是常见的的由来
{
System.out.println("哈哈你妹");
}
public static void main(String[] args)
{
//创建⼈对象
Person s1= new Person();
Person s2= new Person();
PersonClass s3=new PersonClass();
s3.show();//不能直接写show(),因为是⾮静态⽅法,必须实例化后通过实例调⽤
show2();
//给成员变量赋值
s1.setName("林青霞");
s1.setAge(27);
//Static 与Final是不同的哦,Static类似C语⾔的Extern,Final类似Define
//Static定义的变量的值仍然是可以修改的,但是Final指定在定义的时候赋值⼀次
//获取数据
System.out.Name()+"---"+s1.getAge());//直接⽤类名.调⽤Name和
// age是绝对不可以的
System.out.Name()+"---"+s2.getAge());
System.out.untry);//静态属性最好不要⽤类的实例调⽤,会警告的
System.out.untry);
System.out.untry);//Person.后⾯只提⽰country,
//不会提⽰name和age哦
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论