java类和对象——如何面向对象以及类的定义、使用和实例化
1.面向对象的初步认识
1.1 什么是面向对象
Java是一门纯面向对象的语言(Object Oriented Program,继承OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。
面向对象的优点: 用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好
1.2 面向对象与面向过程
举一个洗衣服的例子:
这是传统洗衣服的步骤
传统洗衣服的方式:注重的是洗衣服的过程,少了一个环节可能都不行。
- 不同衣服洗的方式,时间长度,拧干方式都不同,处理起来就比较麻烦。
- 如果将来要洗鞋子,那就是另一种放方式
- 如果按照该种方式来写代码,将来扩展或者维护起来会比较麻烦。
现代洗衣服的方式:
总共有4个对象:人、衣服、洗衣机、洗衣粉。
- 以面向对象方式来进行处理,就不关注洗衣服的过程,具体洗衣机是怎么来洗衣服,如何来甩干的,用户不用去关心。
- 只需要将衣服放进洗衣机,导入洗衣粉,启动开关即可,通过对象之间的交互来完成的。
【注意事项】 面向过程和面相对象并不是一门语言,而是解决问题的方法,没有那个好坏之分,都有其专门的应用场景。
下面再来举一个例子来具体描述什么是面向对象,什么是面向过程。
买手机的例子:
【面向过程】
- 比如我要一个买手机。
- 首先我在网上查看要买哪个型号的手机。
- 选择手机的参数。
- 选好心仪的手机,然后下单。
- 手机到了,取快递。
- 激活,使用。
强调的是买手机的过程,买手机用了几步,并且任何一个步骤出了问题都会影响到使用使用手机。
【面向对象】
- 我要买手机
- 让朋友帮我买手机,他来完成(上网查看、选参数、下单、取快递、激活使用)
- 最后拿给我使用。
我是要使用手机,根本不需要关心买手机的步骤,手机拿回来后,我来使用就好了。
2.类的定义和使用
2.1 简单认识类
类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(外观尺寸等),哪些功能(用来干啥),描述完成后计算机就可以识别了。
//student是要描述的对象
class student {
//对象的属性
public int age;//年龄
public String name;//姓名
public String telephone;//电话
//对象的行为
public void eat(){
System.out.println("吃饭");
}
public void sleep() {
System.out.println("睡觉");
}
public void beatPeas() {
System.out.println("打豆豆");
}
}
public class ClassUse {
public static void main(String[] args) {
}
}
2.2 类的定义格式
先来定义一个洗衣机类:
类至少有两部分组成:一个是属性、一个是行为。
- 属性叫做成员属性(有的书籍叫字段)。
- 方法叫做成员方法(有的书籍叫方法)。
//class - 类名 -> 大驼峰
class WashMachine{
//属性【字段】 -> 成员属性
public String brand; // 品牌
public String type; // 型号
public double weight; // 重量
public double lenght; // 长
public double width; // 宽
public double height; // 高
public String color; // 颜色
public int price;//价格
//行为【方法】 -> 成员方法
public void washClothes(){ // 洗衣服
System.out.println("洗衣功能");
}
public void dryClothes(){ // 脱水
System.out.println("脱水功能");
}
public void setTime(){ // 定时
System.out.println("定时功能");
}
}
public class ClassUse {
public static void main(String[] args) {
}
}
【注意事项】
- class 后面书写的是类名,类名要采取大驼峰定义(即单词首字母大写)。
- 方法名要使用小驼峰(即方法名单词首字母小写,其余单词首字母大写)。
- 成员前写法统一为public,后面会详细解释。
- 此处写的方法不带 static 关键字,后面会详细解释。
3.课堂练习
3.1 定义一个猫类
//定义一个猫类
class Cat{
public String name;//名字
public String color;//颜色
public int age;//年龄
public void Purrpurr() {//咕噜噜噜
System.out.println("咕噜咕噜");
}
public void Meow() { //喵喵叫
System.out.println("喵喵");
}
public void Wagtail() { //摇尾巴
System.out.println("摇尾巴");
}
}
public class ClassUse {
public static void main(String[] args) {
}
}
3.2 定义一个女朋友类
//定义一个女朋友类
class Grilfriend{
public String name;//名字
public int weight ;//体重
public int age;//年龄
public String telephone;//电话
public int height;//身高
public void Kiss() {//亲亲
System.out.println("亲一个");
}
public void Hug() { //抱抱
System.out.println("抱一个");
}
public void Coquetry() { //撒娇
System.out.println("撒娇");
}
}
public class ClassUse {
public static void main(String[] args) {
}
}
【注意事项】
- 一般一个文件当中只定义一个类
- main方法所在的类一般要使用public修饰(注意:Eclipse默认会在public修饰的类中找main方法)
- public修饰的类必须要和文件名相同
- 不要轻易去修改public修饰的类的名称,如果要修改,**通过开发工具修改。1
3.类的实例化
3.1 什么是实例化
- 定义了一个类,就相当于在计算机中定义了一种新的类型。
- 用类类型创建对象的过程,称为类的实例化
//定义一个女朋友类
class Grilfriend{
public String name;//名字
public int weight ;//体重
public int age;//年龄
public String telephone;//电话
public int height;//身高
public void Kiss() {//亲亲
System.out.println("亲一个");
}
public void Hug() { //抱抱
System.out.println("抱一个");
}
public void Coquetry() { //撒娇
System.out.println("撒娇");
}
}
public class ClassUse {
public static void main(String[] args) {
//实例化一个女朋友对象
Grilfriend grilfriend = new Grilfriend();//这个时候有了一个真正的grilfriend
grilfriend.name = "小美";
grilfriend.age = 19;
grilfriend.telephone = "123456789";
grilfriend.weight = 56;
grilfriend.height = 170;
System.out.println(grilfriend.name);
System.out.println(grilfriend.age);
System.out.println(grilfriend.telephone);
System.out.println(grilfriend.weight);
System.out.println(grilfriend.height);
//通过.来访问方法
grilfriend.Kiss();
grilfriend.Hug();
grilfriend.Coquetry();
}
}
class Cat{
public String name;//名字
public String color;//颜色
public int age;//年龄
public void Purrpurr() {//咕噜噜噜
System.out.println("咕噜咕噜");
}
public void Meow() { //喵喵叫
System.out.println("喵喵");
}
public void Wagtail() { //摇尾巴
System.out.println("摇尾巴");
}
}
public class ClassUse {
public static void main(String[] args) {
//实例化一个Cat对象
Cat cat = new Cat();//这个时候有了一个真正的Cat
Cat cat1 = new Cat();//小猫1号
Cat cat2 = new Cat();//小猫2号
Cat cat3 = new Cat();//小猫3号
cat.name = "小栗";
cat.age = 3;
cat.color = "黑色";
System.out.println(cat.name);
System.out.println(cat.age);
System.out.println(cat.color);
//通过.来访问方法
cat.Purrpurr();
cat.Meow();
cat.Wagtail();
}
}
每一只小猫都可以有它自己的名字和颜色。
【注意事项】
- new 关键字用于创建一个对象的实例。
- 使用 . 来访问对象中的属性和方法。
- 同一个类可以创建多个实例。
3.2 类和对象的说明
- 类只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员。
- 类是一种自定义的类型,可以用来定义变量。
- 一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量。
做个比方。类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图。 只设计出需要什么东西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空间
Footnotes
-
注脚的解释 : 如果要修改类的名称,要使用idea来更改。 右击要更改的文件,选中Refactor,再选中Rename File... 修改完后,点击Refactor确认修改。 ↩
转载自:https://juejin.cn/post/7130481436406054925