网站用户角色,安顺市建设局网站,wordpress手机端菜单被挤到第二行,建设银行etc信用卡申请网站【本节目标】 1. 掌握类的定义方式以及对象的实例化 2. 掌握类中的成员变量和成员方法的使用 3. 掌握对象的整个初始化过程 目录
1. 面向对象的初步认知
2. 类定义和使用
3. 类的实例化
4. this引用 1. 面向对象的初步认知
1.1 什么是面向对象
Java是一门纯面向对象的语…【本节目标】 1. 掌握类的定义方式以及对象的实例化 2. 掌握类中的成员变量和成员方法的使用 3. 掌握对象的整个初始化过程 目录
1. 面向对象的初步认知
2. 类定义和使用
3. 类的实例化
4. this引用 1. 面向对象的初步认知
1.1 什么是面向对象
Java是一门纯面向对象的语言(Object Oriented Program简称OOP)在面向对象的世界里一切皆为对象。面向对象是解决问题的一种思想主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序更符合人们对事物的认知对于大型程序的设计、扩展以及维护都非常友好。
1.2 面向对象与面向过程
1. 传统洗衣服过程 传统的方式注重的是洗衣服的过程少了一个环节可能都不行。
而且不同衣服洗的方式时间长度拧干方式都不同处理起来就比较麻烦。如果将来要洗鞋子那就是另 一种放方式。 按照该种方式来写代码将来扩展或者维护起来会比较麻烦。
2. 现代洗衣服过程 总共有四个对象:人。衣服、 洗衣粉、洗衣机, 整个洗衣服的过程:人将衣服放进洗衣机、倒入洗衣粉启动洗衣机洗衣机就会完 成洗衣过程并且甩干。 整个过程主要是:人、衣服、洗衣粉、洗衣机四个对象之间交互完成的人不需要关 新洗衣机具体是如何洗衣服的是如何甩干的。 以面向对象方式来进行处理就不关注洗衣服的过程具体洗衣机是怎么来洗衣服如何来甩干的用户不用去关 心只需要将衣服放进洗衣机倒入洗衣粉启动开关即可通过对象之间的交互来完成的。
注意面向过程和面相对象并不是一门语言而是解决问题的方法没有那个好坏之分都有其专门的应用场景。 2. 类定义和使用
2.1 类的定义格式
在java中定义类时需要用到class关键字具体语法如下 class为定义类的关键字ClassName为类的名字{}中为类的主体。
类中包含的内容称为类的成员。属性主要是用来描述类的称之为类的成员属性或者类成员变量。方法主要说明类 具有哪些功能称为类的成员方法。
下面我们来定义一个描述人的类
class Person{//属性public String name;public int age;//行为方法public void sleep(){}
}
上面定义了一个名为Person的类该类具有以下属性和行为方法
属性
name用于存储人的姓名的字符串变量。age用于存储人的年龄的整数变量。
行为方法
sleep()表示人的睡眠行为可以在方法中编写具体的实现逻辑。
注意事项 类名注意采用大驼峰定义 成员前写法统一为public后面会详细解释 此处写的方法不带 static 关键字. 后面会详细解释 2.2 练习
定义一个学生类 public class Student{public String name;public String gender;public short age;public double score;public void DoClass(){}public void DoHomework(){}public void Exam(){}
}
注意事项 1. 一般一个文件当中只定义一个类 2. main方法所在的类一般要使用public修饰(注意Eclipse默认会在public修饰的类中找main方法) 3. public修饰的类必须要和文件名相同 4. 不要轻易去修改public修饰的类的名称如果要修改通过开发工具修改 3. 类的实例化
3.1 什么是实例化
定义了一个类就相当于在计算机中定义了一种新的类型与intdouble类似只不过int和double是java语言自 带的内置类型而类是用户自定义了一个新的类型比如上述的PetDog类和Student类。
用类类型创建对象的过程称为类的实例化在java中采用new关键字配合类名来实例化对象。 public class Main{public static void main(String[] args) {PetDog dogh new PetDog(); //通过new实例化对象dogh.name 阿黄;dogh.color 黑黄;dogh.barks();dogh.wag();PetDog dogs new PetDog();dogs.name 阿黄;dogs.color 黑黄;dogs.barks();dogs.wag();}
} 注意事项 new 关键字用于创建一个对象的实例. 使用 . 来访问对象中的属性和方法. 同一个类可以创建对个实例. 3.2 类和对象的说明 1. 类只是一个模型一样的东西用来对一个实体进行描述限定了类有哪些成员. 2. 类是一种自定义的类型可以用来定义变量. 3. 一个类可以实例化出多个对象实例化出的对象 占用实际的物理空间存储类成员变量 4. 做个比方。类实例化出对象就像现实中使用建筑设计图建造出房子类就像是设计图只设计出需要什么东 西但是并没有实体的建筑存在同样类也只是一个设计实例化出的对象才能实际存储数据占用物理空间。 4. this引用
4.1 为什么要有this引用
public class Date {public int year;public int month;public int day;public void setDay(int y, int m, int d){year y;month m;day d;}public void printDate(){System.out.println(year / month / day);}public static void main(String[] args) {
// 构造三个日期类型的对象 d1 d2 d3Date d1 new Date();Date d2 new Date();Date d3 new Date();
// 对d1d2d3的日期设置d1.setDay(2020,9,15);d2.setDay(2020,9,16);d3.setDay(2020,9,17);
// 打印日期中的内容d1.printDate();d2.printDate();d3.printDate();}
}
以上代码定义了一个日期类然后main方法中创建了三个对象并通过Date类中的成员方法对对象进行设置和打 印代码整体逻辑非常简单没有任何问题。
但是细思之下有以下两个疑问
1. 形参名不小心与成员变量名相同 那函数体中到底是谁给谁赋值成员变量给成员变量参数给参数参数给成员变量成员变量参数估计 自己都搞不清楚了。
2. 三个对象都在调用setDate和printDate函数但是这两个函数中没有任何有关对象的说明setDate和 printDate函数如何知道打印的是那个对象的数据呢 一切让this引用来揭开这层神秘的面纱。
4.2 什么是this引用
this引用指向当前对象(成员方法运行时调用该成员方法的对象)在成员方法中所有成员变量的操作都是通过该 引用去访问。只不过所有的操作对用户是透明的即用户不需要来传递编译器自动完成。
public class Date {public int year;public int month;public int day;public void setDay(int year, int month, int day){this.year year;this.month month;this.day day;}public void printDate(){System.out.println(this.year / this.month / this.day);}
}
注意this引用的是调用成员方法的对象。 4.3 this引用的特性
1. this的类型对应类类型引用即哪个对象调用就是哪个对象的引用类型。
2. this只能在成员方法中使用。
3. 在成员方法中this只能引用当前对象不能再引用其他对象。
4. this是“成员方法”第一个隐藏的参数编译器会自动传递在成员方法执行时编译器会负责将调用成员方法 对象的引用传递给该成员方法this负责来接收。
在代码层面来简单演示---注意下图右侧中的Date类也是可以通过编译的。