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();// 当执行完成后.对象空间可以被垃圾回收器回收 } }
相关文章推荐
- WPF 拓扑图 Topographies
- halcon边缘提取和检测常用方法
- 亲友团问题
- TCP长连接与短连接的区别
- php -- 可变变量
- 用SQLYog导出导入数据所遇到的问题
- Return-to-libc攻击实验
- [Mac OSX]MAC读取Excel的Sheet
- Manacher算法-求字符串中最长回文串
- 将ListView中的内容导出到Word和Excel(新)
- django --fields.E304 错误解决方案
- Masonry介绍与使用实践(快速上手Autolayout)
- Unity3d 着色器语法(Shader)
- 做个简单的本地弹幕播放器
- nfc相关
- 安装nginx
- 解决"Could not initialize class android.graphics.Typeface"
- 警察叔叔就是它!那些烦人的空格!
- table滚动条
- Java-mongodb-AggregationOutput(分组、统计)