Java带你去看流浪世界!(七)

《类和对象》

面向过程:面向方法,面向函数,结构化方法。

代码是由顺序的,需要什么功能就编写什么功能。

我们前期语法阶段将吃货联盟代码全部放在main方法中,之后等我们学了方法,就会把吃货联盟稍微用正式的面向过程改造一下...(按照功能聚合到对应方法中)

面向对象:( OOP) 他是基于面向过程产生的一种更复杂的编程思想/编程方式。

执行顺序不固定。

(有难度,不是简单就能运用的)

Java是不完全的面向对象,Python面向对象,C#面向对象,C++面向对象,PHP也是面向对象的编程语言。

面向对象是项目复杂化,规模化的必然产物。

比例:自己做一件事,自己所准备的这件事的过程叫面向过程

专门专事的去做这件事的过程叫面向对象=

一、对象的概念

1.Java是一门不完全的面向对象的编程语言:OOP(Object Orientide Programming)

2.对象,即Object,一切皆为对象,万物皆为对象

3.不同的人分析物体的角度不同

	1.同样是一辆车

	2.不同的人分析的角度不一样(化学家/画家/修理工)

4.Java主要是对物体进行分类,对着一类物体进行归纳

	我们在描述生活中的一个个对象时通常都会采用特征+行为的方式。

5.归纳的角度有 两个:

	1.状态/特征(名词)体重5kg---> 属性--->变量

	2.动作/行为(名词)跑,跳---->方法---->函数

对象的概念:用来描述客观事物的一个实体,有一组属性和方法构成。

二、类的编写

生活中的类

我们在看到一群对象/实体时,会下意识进行分类(人类认识事物的必然过程)。“物以类聚,人以群分”

学生(类别),人类,哺乳类,爬行类,猫科类,灵长类.....

类(类别):他是一个抽象的概念,他是从一群对象中抽取共性的特征和行为产生的一个概念。没有办法具体拿某个对象来表示某个类别,因为对象只是类的一个个体。

生活中类和对象的关系:类是一个模板,对象是类的一个个体,。

程序中的类和对象

Java是一个不完全的面向对象的编程语言。

它以类(引用数据类型)为基本单位,被class修饰的。

1.类的语法:
public class 类名{		//程序中的类和对象都是从生活中抽象而成的,
    						//你在现实中如何描述它们,程序中也是。
    //定义属性部分
    属性1的类型 属性1
        ...			//1.此类的相关属性(成员变量/字段)
    属性n的类型 属性n;
    //定义方法部分
    方法1...			//2.此类的相关方法(成员方法/函数)
    方法m;
}

定义一个学生

public class cellphone{
    //相关属性
    颜色
    品牌
    营业商
    4G
    //相关方法
    打电话
    玩游戏
    发短信
    看视频
}
定义学生类:
public class Student {

	// 一组属性(成员变量)
	/** 学生姓名 */
	public String stuName;
	/** 学生编号 */
	public int stuNo;
	/** 学生班级 */
	public int classId;
	/** 学生专业 */
	public String major;
	/** 学生性别 */
	public char gender;
	/** 学生年龄 */
	public int age;
	/** 学生成绩 */
	public double score;
	
	// 一组方法(成员方法)
	// public static void main(String[] args){}
	/**
	 * 学习方法
	 */
	public void study() {
		System.out.println(major+"专业的"+classId+"班级的"+stuName+"正在好好学习!");
	}
	
	/**
	 * 自我介绍
	 */
	public void showMyself() {
		System.out.println("姓名:"+stuName);
		System.out.println("班级:"+classId);
		System.out.println("专业:"+major);
		System.out.println("性别:"+gender);
		System.out.println("年龄:"+age);
		System.out.println("成绩:"+score);
		System.out.println("学号:"+stuNo);
	}
}

2.类名首字母大写,通常都是名词

3.属性的本质就是声明变量,也叫成员变量,属于类的成员

4.属性可以设置值,相当于变量可以复制

5.方法本质就是函数,在Java中叫法不同而已,想想main函数

6.方法的基本结构
访问修饰符   返回值类型   方法名(参数列表){//方法声明
    //方法主体
}
//Arrays.toString(参数); 将数组转换为字符串
public void(表示没有返回值) sayHello(){
    System.out.println("hello");
}

功能代码的存储空间,以后使用可以复用。

7.一个类中可以有多个属性和多个方法

8.属性和方法的编写顺序没有要求,单通常会将属性写在上面

9.属性和方法通常采用骆驼命名法命名:

	1.骆驼命名法Camel:第一个字母小写,后面每个单词首字母大写

		showCenter   userName

	2.帕斯卡命名法Pascal:每个单词的首字母都大写

		ShowCenter   UserName

10.编写一个Student类,有姓名和年龄两个属性,以及一个sayHello()方法

三、创建和使用对象

1.类其实就是一个模板,类的作用就是创建对象

2.由类来创建对象

	1.此过程称为实例化

	2.一个实例就是一个对象

	3.一个类可以创建多个对象

	4.创建对象需要用到new关键字,表示新建,创建

	5.语法:
类名  对象名  =  new  类名();
Student stu = new Student();//基于Stdent模板创建了一个个体/对象
Scanner input = new Scanner();
3.通过点号操作符访问对象的属性和方法

	调用属性:对象名.属性名 = xxx ;// 赋值

			    对象名.属性名

	调用方法:

			   对象名.方法名()
public class Test{
    public static void main(String[] args){
        
        //根据类模板产生对象
        //创建对象(对象名的命名规范和变量名一致)
        Student chenXU = new Student();
        Student shr = new Student();
        
        // 操作/调用属性
		shr.stuName = "史浩然";
		shr.classId = 335;
		shr.major = "电竞俱乐部厕所打扫官";
		
		chenXu.stuName = "陈旭";
		chenXu.classId = 335;
		chenXu.major = "建筑学";
		chenXu.gender = '男';
		chenXu.stuNo = 9527;
		chenXu.age = 12;
		
		// 操作/调用方法   input.nextInt();
		chenXu.showMyself();
		chenXu.study();
		
		// shr.study();
		// shr.showMyself();
		System.out.println(shr.stuName+"的专业是:"+shr.major);
        
    }
}
	1.stu.name = "zhangsan";	//给name属性赋值

	2.stu.sayHello()			//调用stu对象的sayHello()方法

4.如果类的属性没有赋初始值,则会有默认值:

	1.double / int / float == > 0

	2.String == >  null

	3.boolean == > false

	4.char == >'\u0000'

5.以Student类为例子,实例化并调用对象的属性和方法

6.面向过程/方法/函数,结构化方法

	方法:是功能,是一系列代码的聚合,也可以理解为一个魔术箱。

四、对象和类的关系

1.类是对象的类型

2.对象是实实在在的某一个物体,而类是一个统称,是一个类型(类别)

	1.有困难找警察

	2.小张去吧黑板擦干净

3.面向对象的优点:

	1.与人类的思维习惯一致,更加生活化

	2.通过封装,实现信息隐藏,提高了程序的可维护性和安全性

		类里面封装了属性和方法

	3.提高了程序的可重用性

		一个类可以创建多个对象,可以不断重用
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值