day03--面向对象--Demo

来源:互联网 发布:探索者软件与revit 编辑:程序博客网 时间:2024/05/19 05:38
package day03;/* * 类的定义格式: * clsss 类名{ *      声明成员变量; *      声明成员方法; * } *  * 类的命名规范: *      1.第一个字母要大写 *      2.见名知意,名字有一定的意义,Student,Person,Car *      3.具有一定功能性的描述,如OrderService,StudentManager *  */public class Demo01 {    public static void main(String[] args) {        // 通过new 关键字创建对象        Car car = new Car();        car.name = "benz";        car.run();// 通过类的对象,调用类的成员方法    }}class Car { // 声明汽车类    String name;    public void run() {        // 开汽车        System.out.println("正在驾驶" + name);    }}

这里写图片描述

package day03;/* * 局部变量与成员变量的区别 * 局部变量:随着方法入栈初始化,随着方法出栈而消失 * 成员变量:随着对象的初始化创建,随着对象的回收而消失 */public class Demo2 {    public static void main(String[] args) {        Person person = new Person();        person.name = "disen";        person.age = 30;        person.say();        //System.gc();        person = null;// person指向的堆内存可以被垃圾回收器(GC)回收    }}class Person {    String name;    int age;    public void say() {        int id = 1001;        System.out.println(id + "-->" + name + "," + age);    }}
package day03;/* * Java面向对象的三大特征:封装、继承、多态 *  * 封装:向外部提供有用的成员(属性、方法) *  * 成员四个访问权限: * private    私有的,只能在类的内部访问 *[default]   默认的,可以在同一个包下访问 * protected  受保护的,可以在类的内部和子类中访问 * public     公有的,可以在任一地方访问 *  * this:指向当前类对象,当出现局部变量与成员变量重名时, *      需要使用this来访问成员变量 */class Student {// 数据实体类    private String name;// 默认值为null    private int age;// 默认值为0    String sex="男";    // 方法名的命名方式为驼峰命名方法(setXxx,getXxx)    public void setName(String name) {        this.name = name;// this.name代表的是成员变量    }    public String getName() {        return name;    }    public void setAge(int age) {        this.age = age;    }    public int getAge() {        return age;    }    public String toString() {        return "[name=" + name + ",age=" + age + ",sex=" + sex + "]";    }}public class Demo3 {    public static void main(String[] args) {        Student stu = new Student();        stu.setName("张三");        stu.sex="女";        stu.setAge(30);        System.out.println("Student:"+stu);    }}
package day03;/* * 构造方法:初始化成员变量 *  * 命名:类名,且无返回值 *  * 注意: *   1.构造方法只能用于初始化对象,不能被对象调用,或类的成员方法中调用 *   2.默认构造方法为无参的,也是隐式构造方法 *   3.可以提供有参的构造方法,但会覆盖默认的构造方法 *     在初始化时,必须显示使用构造方法 *   4.两个构造方法之间可以相互调用,使用this()方式调用,但必须在第一行 */class Animal {// 动物类    private String name;    public Animal() {// 无参的方法        this("kit");// 调用有参的构造方法,必须在第一行        // name = "kit";    }    public Animal(String name) {        // 带有参数的构造方法,默认情况下会覆盖无参的构造方法        this.name = name;    }    public void sayHello() {        System.out.println("大家好,我是Animal,我叫" + name);    }}public class Demo4 {    public static void main(String[] args) {        Animal kit = new Animal();        kit.sayHello();        Animal tom = new Animal("Tom");        tom.sayHello();        // 匿名对象,不存在一个引用指向这个对象        new Animal("Haha").sayHello();// 当执行完成后.对象空间可以被垃圾回收器回收    }}
0 0
原创粉丝点击