Java进阶
Java面向对象
类和对象
-
类是模子,确定对象将会拥有的特征(属性)和行为(方法)
-
对象是类的实例表现
-
类是对象的类型
-
对象是特定类型的数据
-
属性:对象具有的各种静态特征”对象有什么“
-
方法:对象具有的各种动态行为”对象能做什么“
-
类:
-
具有相同属性和方法的一组对象的集合
-
抽象的概念
-
模板
-
-
对象:
-
用来描述客观事物的一个实体
-
一个看得到、摸得着的具体实体
-
创建类
-
成员属性有默认值
-
基本类型 默认值 byte 0 short 0 int 0 long 0L float 0.0f double 0.0d char '\u0000' boolean false
public class 类名{ //定义属性部分 [访问修饰符]数据类型 属性名; //定义方法部分 [访问修饰符]返回类型 方法名(参数){ } }
package com.imooc.animal; /** * 宠物猫类 * @author imooc */ public class Cat { //成员属性 String name;//昵称 int month;//年龄 double weight;//体重 String species;//品种 //成员方法: //跑动的方法 public void run() { System.out.println("小猫快跑"); } public void run(String name) { System.out.println(name+"快跑"); } //吃东西的方法 public void eat() { System.out.println("小猫吃鱼"); } public void eat(String name) { System.out.println(name+"吃鱼"); } }
实例化对象
类名 对象名=new构造方法(); 对象名.属性 对象名.方法名()
package com.imooc.animal; public class CatTest { public static void main(String[] args) { //对象实例化 Cat one=new Cat(); one.run(); one.eat(); one.name="花花"; one.month=2; one.weight=1000; one.species="英国短毛猫"; System.out.println("昵称:"+one.name); System.out.println("年龄:"+one.month); System.out.println("体重:"+one.weight); System.out.println("品种:"+one.species); one.run(one.name); one.eat(one.name); } }
单一职责/功能原则
new关键字
-
实例化对象的过程可以分为两部分:
-
声明对象 Cat one
-
只是在内存栈中开辟了一块内存空间,并不能像真正的对象那样使用它
-
栈保存局部变量
-
-
实例化对象 new Cat();
-
在内存的堆中开辟了一块内存空间
-
堆保存动态数据
-
-
Cat one=new Cat(); Cat two=one;
-
需要多次访问同一对象时,必须进行声明
如果只使用一次可不声明
new Cat().run();//匿名对象进行方法调用
-
同一作用范围内,不能定义同名对象
-
可以同时声明多个引用,用逗号分隔