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类的构造方法
构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象,类都会自动调用构造方法。
构造方法的特点:
——没有返回值(普通没有返回值的方法使用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 七七卡卡 ^ _ ^ 如果代码对你有帮助还希望 点赞+关注
上一篇: Python txt文件如何转换成字典