欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java学习笔记04:实例化对象,封装

程序员文章站 2022-04-10 23:27:49
...

实例化对象

实例化对象就是一个创建对象的过程。
首先建立一个class为Cat的对象:

package com.imooc.animal;

public class Cat {
	//属性:昵称,年龄,体重,品种
	String name; //String类型默认值null
	int month; //int类型默认值0
	double weight; //double类型默认值0.0
	String species;
	//成员方法:跑动,吃东西
	//跑动的方法
	public void run() {
		System.out.println("小猫快跑");
	}
	public void run(String name) {
		System.out.println(name + "快跑");
	}	
	//吃东西的方法
	public void eat() {
		System.out.println("小猫吃鱼");
	}
}

再建立一个class为CatTest的对象:

package com.imooc.animal;

public class CatTest {
	public static void main(String[] args) {
		//对象实例化
		Cat one = new Cat(); 
		//测试
		one.eat();
		one.run();
		one.name = "花花";
		one.month = 2;
		one.weight = 1000;
		one.species = "英国短毛猫";
		System.out.println(one.month);
		//默认存在初始值,和在方法里定义的局部变量没有初始值不同
		System.out.println("昵称:"+one.name);
		System.out.println("年龄:"+one.month);
		System.out.println("体重:"+one.weight);
		System.out.println("品种:"+one.species);
		one.run(one.name);
	}
}

可以看到,在Cat里定义了两个run的方法,后者如果用name调用的时候,可以直接变为“花花快跑”。

单一职责原则

一个类里有且只有一个引起功能变化的原因。
如果在一个类当中承担的功能越多,交融耦合性越高,复用越低

对象实例化

实例化对象的过程可以分为两部分
–声明对象 Cat one
在栈里开辟一个空盒子 one, 但是不能像一个真正的对象一样使用。必须要经过第二步↓。
–实例化对象 new Cat();
在堆空间里开辟一个空间,完成了操作。

Cat one = new Cat();
将栈空间和堆空间连接起来。
java学习笔记04:实例化对象,封装
这样的操作结果会打印出来都是凡凡。

构造方法

构造方法与类同名且没有返回值
语句格式:
java学习笔记04:实例化对象,封装
只能在对象实例化的时候调用
当没有指定构造方法时,系统会自动添加无参的构造方法
当有指定构造方法时,无论是有参,无参的构造方法,
都不会自动添加无参的构造方法
一个类中可以有多个构造方法

封装

将类的某些信息隐藏在类内部,不允许外部程序直接访问
通过该类提供的方法来实现对隐藏信息的操作和访问
隐藏对象的信息
留出访问的接口

特点:

1.只能通过规定的方法访问数据
2.隐藏类的实例细节,方便修改的实现

实现步骤

修改属性的可见性—设为private
创建getter/setter方法—设为public用于属性的读写(对外开放的可操作接口)
在getter/setter方法中加入属性控制语句—对属性值的合法性进行判断

访问修饰符

private
public

注意

只有getXXX方法的属性是只读属性
只有setXXX方法的属性是只写属性(只能赋值,无法获取)
Java中一个包里不能存在同名类
包的名称设置习惯:域名倒叙+模块+功能

如果告诉编译器要调用的是哪个包里的Cat