Java初学笔记(方法+变量+this+封装)(11.17)


一、构造方法

1)定义

类创建对象时调用的方法,主要用来实例化对象。
构造方法分为无参构造方法和有参构造方法。

2)特点

1.构造方法的方法名与类名相同
2.在方法名面前不声明返回类型
3.声明一个类时,默认添加一个无参构造方法,隐藏不显示
4.构造方法也可重载,在一个类中,可创建多个重名不同参数的方法
public class Student {
    public String name;
    public int age;
    public double weight;
    //无参构造
    public Student() {
    }
    //有参构造
    public Student(String name, int age, double weight) {
        this.name = name;
        this.age = age;
        this.weight = weight;
    }

二、方法重载

1)定义

方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数类型或参数个数。

2)特点

1.在同一个类中
2.方法名相同
3.参数列表不同(参数个数,参数顺序,参数类型)
4.与返回值类型无关
5.与方法的访问权限修饰符无关
    //构造方法重载     name和age只是形参
    public Student(String name) {
        this.name = name;
    }
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

3)调用

1.创建对象调用
2.方法的调用:方法名(参数)
public class StudentTest {
    public static void main(String[] args) {
        //无参构造创建对象,赋值
        Student stu1 = new Student();
        stu1.name = "王五";
        stu1.age = 19;
        stu1.weight = 150;
        stu1.showInfo();
        //有参构造
        Student stu2 = new Student("王五",18,120);
        stu2.showInfo();
    }
}
3.静态方法调用:用static修饰的,类名.

三、成员变量和局部变量

1)定义

(1)成员变量(全局变量):定义在类中,方法外(某些结构外)的变量,能够作用在整个类中。系统会给成员变量赋予一个默认值。

包括实例变量和类变量,用static修饰的是类变量,不用static修饰的是实例变量,所有类的成员变量可以通过this来引用。

(2)局部变量:定义在方法或者某些结构中的变量,只能作用在方法中或者定义它的结构中,局部变量必须先初始化(赋值)才能使用,系统不会给局部变量赋予默认值。

包括形参,方法局部变量,代码块局部变量,存在于方法的参数列表和方法定义中以及代码块中。成员变量可以被public, protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可以定义成final型。

  • 同一个类中不能有同名的成员变量(全局变量),在同一个方法或者结构中,不能有同名的局部变量,不同的方法中可以有同名的局部变量
  • 同一个类中可以有同名的成员变量和局部变量,但是局部变量具有更高的优先级

2)作用域

1.成员变量

(1)类的属性,也就是直接在类中定义的变量称为成员变量,它定义在方法的外部。
(2)成员变量可以在声明时赋初始值。

2.局部变量

(1)局部变量就是定义在方法中的变量。
(2)局部变量在使用前需要赋值,否则会编译出错。

3)区别

(1)作用域不同:局部变量的作用域仅限于定义于它的方法,在该方法外无法访问它。成员变量的作用域在整个类内部都是可见的,所有成员方法都可以使用它,如果访问权限允许,还可以在类外部使用成员变量。

(2)初始值不同:对于成员变量,如果在类定义中没有给它赋予初始值,Java会给它一个默认值,基本数据类型整数型值为0,浮点型的值是0.0,char类型的值是’ ',boolean类型的值是false,引用类型的值为null。但是Java不会给局部变量赋予初始值,因此局部变量必须要定义并赋值后再使用。

(3)在同一个类中,不允许有同名成员变量。在同一个方法中,不允许有同名的局部变量。在不
同的方法中,可以有同名的局部变量。

(4)局部变量可以和成员变量同名,并且在使用时,局部变量具有更高的优先级。


四、this关键字

1)意义

对一个对象的默认引用,this就是所在函数所属对象的引用,哪个对象调用了this所在的函数,this就代表哪个对象。

2)使用

(1)调用属性,调用方法,调用构造方法。

(2)当成员变量和局部变量重名,可以用关键字this区分。

(3)this关键字也可以用于在构造函数中调用其他构造函数。但是,只能定义在构造函数的第一行,因为初始化动作要先执行。

(4)因为this是在对象内部指代自身的引用,所以this只能调用实例变量、实例方法和构造方法,不能调用类变量和类方法,也不能调用局部变。


五、封装

1)定义

Java中封装的实质:将类的状态信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

2)特点

(1)封装反映了事物的相对独立性,隐藏类的实现细节,让使用者只能通过程序员规定的方法来访问数据,有效避免了外部错误对此对象的影响,并且能够对对象使用者由于大意产生的错误起到预防作用。

(2)面向对象编程提倡对象之间实现松耦合关系。松耦合就是指尽量减少对象之间的关联性,降低它们之间的复杂性和依赖性。

3)使用

(1)修改属性的可见性:对数据(属性)的封装使用private。

(2)设置setter/getter()方法:对过程(行为)的封装使用,给出访问权限为public的setter(给数据赋值,不需要返回值)方法和getter(获得赋值后的数据,需要返回值)方法。

(3)在setter()方法中进一步利用条件判断语句进行赋值限制。 用private封装后就不能直接调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值