笔上得来终觉浅,绝知此事要躬行
🔥 个人主页:星云爱编程
🔥 所属专栏:javase
🌷追光的人,终会万丈光芒
🎉欢迎大家点赞👍评论📝收藏⭐文章
目录
一、作用域
1.1基本使用
(1)在java编程中,主要的变量就是属性(成员变量)和局部变量。
(2)我们所说的局部变量一般是指在成员方法中定义的变量。
(3)java中作用域的分类:
全局变量:也就是属性,作用域为整个类;
局部变量:除了属性之外的其他变量,作用域为定义它的代码块。
(4)全局变量可以不赋值直接使用,因为它有默认值,默认规则同数组;
局部变量必须赋值后才能使用,它没有默认值。
1.2注意事项及使用细节
(1)属性和局部变量可以重名,使用时遵循最近原则。
(2)在同一个作用域中,两个局部变量不能重名。
(3)全局变量(属性)生命周期长,随着对象的创建而创建,随着对象的销毁而销毁。
局部变量生命周期短,随着其所在代码块的执行而创建,随着其所在代码块的结束而销毁。
(4)作用域范围不同:
全局变量(属性):可以被本类使用或其他类使用;
局部变量:只能在本类中对应的方法中使用。
(5)修饰符不同
全局变量(属性):可以加修饰符;
局部变量:不可以加修饰符。
二、构造方法(构造器)
2.1基本介绍
构造方法又叫构造器(constructor),是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。
作用场景:在创建对象时,就直接指定这个对象的属性。
基本语法:
[修饰符] 方法名(形参列表){
方法体;
}
语法说明:
(1)构造器的修饰符可以默认, 也可以是public protected private。
(2) 构造器没有返回值,也不能写void。
(3) 方法名 和类名字必须一样。
(4)参数列表和成员方法一样的规则。
(5)在创建对象时,系统会自动的调用该类的构造器完成对象的初始化。
2.2实例
public class Test8 {
public static void main(String[] args) {
Cat cat = new Cat("小黄", 5);
cat.info();
}
}
class Cat{
public String name;
public int age;
public Cat(String Name,int Age){//构造方法
name=Name;
age=Age;
}
public void info(){//打印对象信息
System.out.println("name="+name+" age="+age);
}
}
2.3注意事项及细节
(1)一个类可以定义多个构造方法,即构造方法重载。
(2)构造方法名要和类名相同。
(3)构造方法没有返回值,而且不能写void。
(4)构造方法是完成对象的初始化,而不是创建对象。
(5)在创建对象时,系统自动调用该类的构造方法。
(6)如果在类中没有定义构造方法,系统会自动给类生成一个默认无参构造方法。
(7)一旦定义了构造方法,默认的无参构造方法就被覆盖了,就不能使用默认的无参构造方法了,除非显式的定义一下,如
public Cat(){ }
三、对象创建的流程分析
看如下代码,分析创建对象的流程:(面试题)
public class Test9 {
public static void main(String[] args) {
Person person = new Person("至尊宝", 19);
}
}
class Person{
String name;
int age=99;
public Person(String Name,int Age){
name=Name;
age=Age;
}
}
(1)加载Person类信息(Person.class),只会加载一次。
(2)在堆中分配空间。
(3)完成对象初始化:
①默认初始化:name=null,age=0;
②显示初始化:age=99,name=null;
③构造方法初始化:name="至尊宝",age=19。
(4)把对象在堆中的地址返回给person(person是对象名,也可以理解成是对象的引用)。
四、this关键字
4.1基本介绍
java虚拟机会给每个对象分配this,代表当前对象。
理解:
可以理解为人称代词"我",每个人说的"我"都代表自己。
this也是如此,那个对象调用this,this就代表那个对象
4.2作用
(1)引用当前对象。
(2)调用当前类的构造方法。例如:
public class Test9 {
public static void main(String[] args) {
Person person = new Person();
System.out.println("name="+person.name+"age="+person.age);
}
}
class Person{
String name;
int age;
public Person(String Name,int Age){
name=Name;
age=Age;
}
public Person(){
this("未命名",0);//调用上面的构造方法
}
}
(3)返回当前对象的引用。
在方法中,可以使用return this来返回当前对象的引用,这样可以在同一个语句中连续调用多个方法
(4)传递当前对象作为参数。
4.3注意事项和使用细节
(1)this关键字可以用来访问本类的属性、方法、构造器
(2)this用于区分当前类的属性和局部变量。
(3)访问成员方法的语法:this.方法(参数列表)。
(4)访问构造方法的语法:this(参数列表);注意只能在构造方法中使用。
(5)this不能在类定义的外部使用,只能在类定义的方法中使用。
结语
感谢您的耐心阅读,希望这篇博客能够为您带来新的视角和启发。如果您觉得内容有价值,不妨动动手指,给个赞👍,让更多的朋友看到。同时,点击关注🔔,不错过我们的每一次精彩分享。若想随时回顾这些知识点,别忘了收藏⭐,让知识触手可及。您的支持是我们前进的动力,期待与您在下一次分享中相遇!
路漫漫其修远兮,吾将上下而求索。