JAVA 类 + 对象学习(矩形面积小练习)

今天我们谈一谈JAVA中累和对象

你好WO SHI 七七卡卡 ^ _ ^

我们的“对象”

0.1 JAVA中的 “对象”并非我们生活中我们所认为的对象,JAVA中的 “对象”是为了解决一些实际的问题所引入的概念即为面对对象。实际上是一种建模的操作,别的不扯,其他的不谈我们来看一看我们的 “对象”。

0.2 我们的“对象”分为两种,静态部分与动态

静态 属性(一个人的高矮胖瘦,一部手机的名字信息)
动态 行为 (一个人蹦迪,跳EDM、857.。。。)

0.3 我们首先要将现实世界的实体抽象为对象,然后考虑对象的的 属性 和 行为。

事物的“类”

1.0 类 就是同一类事物的统称,如果将现实世界中的一个事物抽象成对象,累就是这类对象的统称。

类——成员变量

2.0 成员变量——类的属性(例如我们创建一个人的类)
public class people{
String eye;
String ear;
String head;
}
2.1 成员方法——类的行为(例如我们创建一人的方法)
public class people{
public void run(){}
public void eat(){}
public void sleep(){}
}
2.2 局部变量

在 类 里创建一个变量——成员变量;
在成员方法内创建一个变量——局部变量;

public getAge(){
int age = 11;//局部变量
return age;
}

(局部变量是在方法被执行时创建的,方法执行结束而结束。局部变量在使用时要进行赋值或初始化。成员变量不被初始化不会报错)
在这里插入图片描述
大家一定要分清成员变量与局部变量。

2.3 this 关键字

对于 this 关键字我们用两串代码来认识一下:

public class l2 {//类
	int age = 18;//成员变量

	public void getAge(int age) {//方法
		System.out.println(age);
	}

	public static void main(String[] args) {
		l2 a = new l2();
		a.getAge(12);
	}
}

在这里插入图片描述
我们发现它输出的是12,,,,
方法中的age 实际上是参数中的age 不是成员变量
我们用this 关键字再运行一下:

public class l2 {//类
	int age = 18;//成员变量

	public void getAge(int age) {//方法
		System.out.println(this.age);
	}

	public static void main(String[] args) {
		l2 a = new l2();
		a.getAge(12);
	}
}

在这里插入图片描述
加了’ this ’ 成员方法里输出的 'name’值就是我们的成员变量,而不是方法中的参数

2.4 权限修饰符

在这里插入图片描述
private 私人的 私有的;如果用它修饰,只能自己用。
protect 如果用它修饰 自己可以用,自己一个母亲生的(同一个包或子 类)亲兄弟姐妹也可以用
public 如果用它修饰 谁都可以用

2.5类的构造方法

构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象,类都会自动调用构造方法。

扫描二维码关注公众号,回复: 11036100 查看本文章
 构造方法的特点:
 ——没有返回值(普通没有返回值的方法使用public void 或methodEx()定义,但构造方法不需要使用void关键字进行修饰)
 ——构造方法的名称要与本类的名称相同

构造方法就是创建类的对象过程中运行的方法,也就是对对象的初始化。

2.6如果类中没有明确定义构造方法,则编译器中会自动创建一个不带参数的默认构造方法
在这里插入图片描述
我们将public l1() {//创建方法}删除;
在这里插入图片描述
我们发现不会报错。。。。。
如果我们定义一个带参数的怎么办呢?
在这里插入图片描述
所以我们定义带参的方法时必须要输入参数
在这里插入图片描述
这样我们无参的构造方法就用不了了,如何可以使用呢?
在这里插入图片描述
我们在创建一个,这样就不会报错了
关于类我们就先说到这,下面我们说一说对象

对 象 的特性

3.0 对象的创建
age z = new age();
age z = new age("18");
设置值 描述
age 类(名)
z 创建age 对象(引用)
new 创建对象操作符
new age 实体对象
“18” 构造方法的参数

我们来做一个关于计算机教师的小练习

class Teacher {

	String name;
	String zhuanye;
	String kecheng;
	int age;

	public void introduce() {
		System.out.println(
				"大家好,我是教员:" + name + " 。" + "我的专业是:" + zhuanye + " 。" + "我的课程:" + kecheng + " 。" + "我的教龄:" + age);

	}
}

public class l4 {
	public static void main(String[] args) {
		Teacher stu = new Teacher();
		stu.name = "七七卡卡";
		stu.zhuanye = "胎儿计算机教学+EDM+857";
		stu.kecheng = "只有雨天才上课";
		stu.age = 3;
		stu.introduce();
	}
}

这样我们就输出了一位关于教师的信息

3.1 对象的销毁

finalize()方法
如果用户在类中定义了finalize()方法,在垃圾回收站时会首先调用该方法,在下一次垃圾回收动作时发生,才能真正回收被对象占用的空间。

public static void main(String[] args) {
		// TODO 自动生成的方法存根
		AA p1 = new AA();
		AA p2 = new AA();
		p1 = null;
		p2 = null;
		System.gc();
		for(int i =0;i<10000;i++) {			
		}
	}
}
class AA{
	public void finalize() {
		System.out.println("对象将被被作为垃圾回收。。。");
	}
}

练习一下

给大家一个小练习:编写一个矩形类将长和高作为矩形类的属性,在构造方法中将长、宽初始化,定义一个成员方法求矩形面积
我们一起看一下代码:

public class l3 {//类
	   public float height;
	   public float width;
		public l3(float height,float width){//属性
			this.height=height;
			this.width=width;
		}
		public float square(){//成员方法
			return height*width;
		}
		public static void main(String args[]){
			l3 u=new l3(40f,40.5f);
			System.out.println(u.square());
		}
}

答案为1620.0

2020年对于我们每一个人来说像是不好一年,世界的疫情、各地的灾难、个人的不顺,好像2020对于每一人来说都是充满荆棘的一年,但再怎样的不舒心,太阳照样东起西落,明天终将会到来,无论有再大的困难,与其在那彷徨徘徊,不如冷静思考,相信明天总会是光明的,困难总会过去,你我不断前行。

希望对你在学习 JAVA 的道路上提供一点点帮助。谢谢,

WO SHI 七七卡卡 ^ _ ^ 如果代码对你有帮助还希望 点赞+关注

发布了4 篇原创文章 · 获赞 71 · 访问量 2689

猜你喜欢

转载自blog.csdn.net/qq_47018979/article/details/105665357