Java作用域与构造器
作用域
变量的作用域,即全局变量和局部变量
- 在java编程中,主要的变量就是属性(成员变量)和局部变量。
- 我们说的局部变量一般是指在成员方法中定义的变量。(举例Cat类: cry)
- java中作用域的分类
全局变量:也就是属性,作用域为整个类体Cat类:cry eat等方法使用属性
局部变量:也就是除了属性之外的其他变量,作用域为定义它的代码块中 - 全局变量可以不赋值,直接使用,因为有默认值,局部变量必须赋值后,才能使用,因为没有默认值
- 全局变量/属性,可以被本类使用,也可以用过对象调用的方式(new一个)被其他类使用
局部变量:只能被本类中对用方法使用
对象中,代码块里定义的不是属性: - 修饰符不同
全局变量/属性可以加修饰符(public protected private)
局部变量不可以加修饰符
这个num不是属性。属性有默认值
构造器(构造方法)
构造方法又叫构造器(constructor),是类的一种特殊的方法,它的主要作用是完成对新对象的初始化(对象已经存在,但是还没初始化),用构造器来初始化对象。
基本语法:
[修饰符] 方法名(形参列表){
方法体;
}
- 构造器的修饰符可以默认,也可以是public protected private
- 构造器没有返回值
- 方法名和类名字必须一样
- 参数列表和成员方法一样的规则
- 构造器的调用,由系统完成(不能主动调用)
- 如果程序员没有定义构造器,系统会自动给类生成一个默认无参构造器(也叫默认构造器),比如 Person 00.使用javap指令反编译看看
Dog(){
}
一旦定义了自己的构造器,默认的构造器就覆盖了,就不能再使用默认的无参构造器,除非显式的定义一下,即: Person(){}
public class Constructor01 {
public static void main(String[] args) {
Peson p1 = new Peson("xx", 20);
System.out.println(p1.name+p1.age);
}
}
class Peson{
String name;
int age;
public Peson(String pName,int pAge){
System.out.println("diaoyong");
this.name=pName;
this.age=pAge;
}
//构造器重载,只指定人名
//不是构造器一定要有返回值
public Peson(String pName){
System.out.println("diaoyong");
this.name=pName;
}
}
如果想在构造器中使用另一个构造器,必须使用this,且必须放在构造器方法的第一行:
public T(){
this("tom",20);
}
public T(String name,int age ){
}
对象创建的流程