Java教程

学习java的第六天

本文主要是介绍学习java的第六天,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在第五天的时候,学习了private关键字的使用,今天首先来对它进行简单的运用

我们先定义一个学生类

public class Student {
    //成员变量
    private String name;
    private int age;

   //get/set方法
    public void setName(String n){
        name=n;
    }
    public String getName(){
        return name;
    }

    public void setAge(int a){
        age=a;
    }
    public int getAge(){
        return age;
    }
    public void show(){
        System.out.println(name+","+age);
    }
}

再写一个测试类,把他作为主类

public class StudentDemo {
    public static void main(String[] args) {
        //创建对象
        Student s = new Student();

        //使用set方法给成员变量赋值
        s.setName("林青霞");
        s.setAge(30);

        s.show();

        //使用get获取成员变量的值
        System.out.println(s.getName() + "----" + s.getAge());
    }
}

接下来学习this关键字,继续使用上面的实例,将学生类改为

public class Student {
    //成员变量
    private String name;
    private int age;

    //get/set方法
    //public void setName(String n) {
    //  name = n;
    //}
    public void setName(String name) {
        //用了this修饰的name是成员变量,没有修饰的是局部变量
        this.name = name;
    }

    public String getName() {
        return name;
    }

    //public void setAge(int a) {
    //  age = a;
    //}
    public void setAge(int age){
        this.age=age;
    }

    public int getAge() {
        return age;
    }

    public void show() {
        System.out.println(name + "," + age);
    }
}

测试类保持不变,发现在进行setName方法的时候假如方法中的局部变量名称也设为相同的,name或者age时,在输出的时候会变成null

这是因为程序无法自动识别局部变量和成员变量,此时this关键字的作用就提现了出来

①this修饰的变量用于指代成员变量

        方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量

        方法的形参没有与成员变量同名,不带this修饰的变量值的是成员变量

②什么时候用this呢?解决局部变量隐藏成员变量

③this:代表所在类的对象引用

        方法被哪个对象调用,this就代表哪个对象

 在学习了this的基本使用后,需要了解this的内存原理

在学习完关键字后,终于进入了封装的学习,java是一个面向对象的语言,他有三大特征,封装继承多态

封装的原则:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供 的方法来实现对隐藏信息的操作和访问成员变量private,提供对应的getXxx()/setXxx()方法 

封装的好处:通过方法来控制成员变量的操作,提高了代码的安全性。

                     把代码用方法进行封装,提高了代码的复用性。

在上面的代码练习中,其实已经学习了封装的使用,下面要学习一种特殊的方法

构造方法:它的作用是创建对象,功能主要是完成对象数据的初始化。

格式:

public class 类名{

        修饰符 类名(参数){

        }

 下面来看一个实例,创建一个学生类

public class Student {
    //成员变量
    private String name;
    private int age;

    //构造方法
    public Student() {
        System.out.println("无参构造函数");
    }

    public void show() {
        System.out.println(name + "," + age);
    }
}

再写一个学生测试类

public class StudentDemo {
    public static void main(String[] args) {
        //创建对象
        Student s = new Student();

        s.show();
    }
}
/*最后输出结果为
无参构造函数
null,0 */

可以看到构造函数在测试类中没有被调用,却出现在了结果中,在我们在调用Student()的时候就调用了构造函数。

在没有构造方法使用的调用方法,系统会默认调用一个无参的构造方法,自然也不会有输出,但是如果使用了构造方法,系统将不会再提供默认的无参构造方法,要使用需要手动给出

新建一个学生类

public class Student {
    //成员变量
    private String name;
    private int age;

    //    public Student() {
//        System.out.println("无参构造函数");
//    }
    //手动给出的无参构造函数
    public Student() {
    }

    public Student(String name) {
        this.name = name;
    }

    public Student(int age) {
        this.age = age;
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void show() {
        System.out.println(name + "," + age);
    }
}

测试类

public class StudentDemo {
    public static void main(String[] args) {
        //创建对象
        Student s = new Student();
        s.show();

        Student s2 = new Student("林青霞");
        s2.show();

        Student s3 = new Student(30);
        s3.show();

        Student s4 = new Student("林青霞",30);
        s4.show();
    }
}
/*
最后输出结果为
null,0
林青霞,0
null,30
林青霞,30
 */

今天的最后,了解一下标准类的制作

①成员变量

        使用private修饰

②构造方法

        提供一个无参构造方法

        提供一个带多个参数的构造方法

③成员方法

        提供每一个成员变量对应的getXxx()/setXxx()

        提供一个显示对象信息的show()

④穿件对象并未其成员变量赋值的两种方式

        无参构造方法创建对象后使用setXxx()赋值

        使用带参构造方法直接创建带有属性值的对象

这篇关于学习java的第六天的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!