您的位置:首页 > 其它

day03--面向对象--Demo

2015-07-17 11:30 381 查看
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();// 当执行完成后.对象空间可以被垃圾回收器回收

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: