学习面向对象

方法重载

this关键字

访问修饰符

构造器

static静态关键字

封装

一、方法重载

方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修 饰符和返回值类型无关。

        1、 多个方法在同一个类中

        2、多个方法具有相同的方法名

        3、多个方法的参数不相同,类型不同或者数量不同

public class MethodOverloadTest {
    // 1、2个int类型参数的方法求和
    public int getSum(int a,int b) {
        return a+b;
    }
// 2、2个double类型参数的方法求和
    public void getSum(double a,double b) {
        System.out.println(a+b);
    }
// 2、3个int类型参数的方法求和
    public int getSum(int a,int b,int c) {
        return a+b+c;
    }
}

二、this关键字

this关键字说明:this是Java提供的关键字,表示当前实例化的对象本身。

使用:

1、this.属性名:来访问类中的成员变量,用来区分成员变量和局部变量(重名问题,如前面章节的 有参构造方法属性赋值);

2、this.方法名(参数值...):用来访问本类的成员方法,通常直接省略;

3、this(参数值...):访问本类的构造方法。

//1、this.属性名

public class Student {
    // 成员变量
    String username;

    int age;

    // 构造方法
    public Student() {

        System.out.println("这是一个无参构造方法");

    }
    public Student(String username, int age) {

        this.username = username;

        this.age = age;

        System.out.println("这是一个有参构造方法");
    }
    // 成员方法
    public void study(String username) {

        System.out.println(username+"在学习");
    }
}

//2、this.方法名(参数值...)

public class ThisDemo {

    public void method1() {

        System.out.println("方法1执行");

        this.method2();
    }

    public void method2() {
        System.out.println("方法2执行");
    }
}

    // 测试类
public class ThisTest {

    public static void main(String[] args) {

    ThisDemo t= new ThisDemo();

    t.method1();
    }
}


//3、this(参数值...)
public class Student {
    // 成员变量
    String username;

    int age;

    // 构造方法
    public Student() {
        this("陈圆圆", 18); // 使用this(参数值)调用有参构造方法
        System.out.println("这是一个无参构造方法");
    }
    public Student(String username, int age) {
        this.username = username;
        this.age = age;
        System.out.println("这是一个有参构造方法");
    }
// 成员方法
public void study(String username) {

    System.out.println(username+"在学习");

    }
}

// 测试类
public class ThisTest {

    public static void main(String[] args) {

    Student s= new Student();

    System.out.println(s.username);

    System.out.println(s.age);
    }
}

三、访问修饰符

public          所属类的成员以及非所属类的成员都可以访问

protected         保护访问,只限于本类和子类访问。

private         私有的,只有所在类的成员才能访问

public   class A(){

         System.out.println("这是public访问修饰符");

}

private  class B(){

       // 这里是调用public的类无参构造方法

       // A a=new A() 

        System.out.println("这是private 访问修饰符");

}

四、构造方法

用new关键字创建一个类的实例对象时调用的一个特殊方法叫构造方法(构造器)

语法: 访问修饰符 类名 ([参数列表]){ 语句块; }

特点:1、方法名与类名相同,并且没有返回值

        2、如果没有定义任何构造方法,类中执行默认无参构造方法

作用:初始化信息,给属性赋值

1、无参构造方法(一般都是空的)

注意:我们一般不会在无参构方法中进行初始化操作,因为那样的话每个对象的属性值就一样了,实际 上我们只要保证有一个无参构造方法就行了。

2、带参构造方法---构造方法重载

构造器与普通方法的区别: 1、构造器的方法名很特殊必须跟类名一样 2、没有方法的返回类型 3、方法体内不能有return 语句

public class Student {

        // 成员变量

        String username;

        int age;

        // 构造方法

        public Student() {

        System.out.println("这是一个无参构造方法");

        } public Student(String username, int age) {

        this.username = username;

        this.age = age;

        System.out.println("这是一个有参构造方法");

        }

        // 成员方法

        public void study(String username) {

        System.out.println(username+"在学习");

        }

}

五、static关键字

可以修饰类、方法、属性、代码块

1、类 静态类不能实例化,不能包含非静态的成员(属性、方法),也就是不用使用new关键字创建静态类 的实例对象。

特点:1、只包含静态成员 2、无法实例化 3、使用类名调用静态成员 4、不能包含构造方法 5、不能被继承

如果一个类下面的成员都需要共享那个可以把这个类定义成静态类。

2、类的成员 非静态变量 :不带static修饰的变量 ,又叫实例变量

        类中的变量要么是静态的,要么是非静态的。

         静态的变量 :静态变量 是属于类所有,非静态成员属于实例对象

        使用:静态成员变量通常用于一些不会经常变化而又频繁使用的数据,比如数据库连接字符,ip地址或 其它配置信息,进行一次读取,以后就可以使用。

静态成员的调用

        类名.属性名

        类名.方法名([参数列表])

非静态成员的调用

        类名 对象名 = new 构造方法([参数列表])

        对象名.属性名

        对象名.方法名([参数列表])

六、封装

面向对象三大特性之一

封装:将类的某些重要信息(字段)隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的属 性来实现对隐藏信息的操作和访问

使用封装 1、修改属性的访问范围   private :私有的

                2、提供公共访问的属性get/set(方法)


 

public class Student {
    // 使用private封装成员变量
    private String name;
    private int age;
    // 提供对应的getXxx`方法 / `setXxx` 方法
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值