A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 641113495 中级黑马   /  2015-9-13 22:07  /  128 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Practise_Student {                                       
        public static void main(String[] args) {
                Student s1 = new Student();//无参构造创建对象s1
                s1.show();//验证无参构造赋值是否成功
                System.out.println("-----------------");
                //s1.name = "李四";  //直接给变量赋值的话可以用"=",调用方法的话必须是在括号中
                s1.setName("张三");//只能通过set方法赋值,因为成员变量都被private修饰了
                s1.setAge (24);
                s1.show();
                System.out.println("-----------------");
                Student s2 = new Student("王五",25);
                s2.show();
        }
}

/*
学生类:
                * 成员变量:
                        * name,age
                * 构造方法:
                        * 无参,带两个参
                * 成员方法:
                        * getXxx()/setXxx()
                        * show():输出该类的所有成员变量值
*/

/*
无参构造与有参构造,如果在类中没有构造方法的话,系统默认有一个无参构造,如果只有有参构造的话,那么
在创建对象的时候必须给变量赋值
*/

class Student {                                                               
        private String name;//private 是私有的意思,它的作用是使成员变量或成员方法只能在本类中访问
        private int age;

        public Student() {        //构造方法是修饰符直接加上类名,它的作用是为成员变量的值初始化,且是没有返回值的
        }

        public Student(String name,int age) {
                //构造方法也是方法,所以一可以重载,即只需方法名相同参数不同即可
                this.name = name;        //this的作用是区分同名,哪个对象调用了this所在的函数,this就代表这个对像
                this.age = age;
        }

        public void setName(String name) {                //设置姓名,不需要返回值,只是完成一个赋值的动作
                this.name = name;
        }

        public String getName() {                                //获取姓名,需要返回值
                return name;
        }

        public void setAge(int age) {                        //设置年龄
                this.age = age;
        }

        public int getAge() {                                        //获取年龄
                return age;
        }

        public void show() {                                        //输出一句话
                System.out.println("姓名:" + name + ",  年龄:" + age);
        }
}

/*
(初始化其实就是完成了一次赋值)
构造赋值与set方法赋值的区别:
构造赋值是在对象创建的时候完成的,所以构造赋值是不能对原有对象的值进行修改的,每用构造赋值的话就是
重新创建了一个对象,而set方法赋值是对原对象成员变量的值进行修改
*/

1 个回复

倒序浏览
进来看看学习学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马