****************************************************************************
类 对象
****************************************************************************
回顾:
1、方法传参 方法如何调用
Demo1.java
2、二维数组的使用
Demo2.java
今日内容:
1、类
2、对象
3、关键字 static this
4、封装
类:在Java中 类是代码的组织单位,Java代码都需要写在类中
类的结构:
class 名字{
Java代码
}
技能点:Java类中的成员 Demo3.java
1)方法: 静态方法static修饰的 如:main
非静态方法
2)属性:成员变量,类的内部同时在所有方法的外部
【明确】:局部变量:在方法内部 或方法中语句块的内部的变量
生命周期:执行到所在的代码块的}时,Java就会释放局部变量
【说明】
1、在声明完类之后,类里的成员是不在内存中的,类中的方法或属性不能直接使用
2、要想使用类中的成员,必须把类中的成员放入内存中
放入的过程称为创建对象的过程
Demo3 d3=new Demo3();
使用Demo3中的成员
对象:就是类在堆内存中的地址
作用:通过对象来访问类中的成员
对象名.方法名();
对象名.属性名;
【注意】:不要把所有的方法或属性写入一个类中
把完成同一类功能的方法或属性写入同一个类中
生活中的相关概念
对象的概念:某一个明确的、具体的实物
万物皆对象
人:分类
对象
庞宇航:
名词,描述一个对象具有什么,称为属性:名字 性别 年龄 身高 体重
动词,描述一个对象能做什么,称为行为或方法:学习 吃 喝 敲代码 打游戏
【总结】:对象具有属性、行为
张旭森使用的电脑:
属性:品牌 型号 颜色 尺寸
方法:敲代码 浏览网页 开机 看电影
郭永刚的保时捷
属性:品牌 性能 排量 颜色
方法:拉人 上路 刹车 启动
人具有分类的本能:
所有的对象都具有属性、行为:把具有相同属性、方法的对象归为一类
类:归纳、总结的一类事物的统称,不明确、不具体
案例:6个动物(对象)
狗:
属性:昵称 毛色 年龄 性别
方法:叫 啃骨头
使用java代码实现 狗类
步骤:
1、找类:原则,具有相同属性、方法的归为一类
public class Dog{
}
2、找类中的属性
成员变量 String nam;
3、找类中的方法(动词、行为)
数据结构:栈 队列
队列:先到 先处理 后到后处理 吃饱了 拉
栈: 先进去后出 后进先出 吃饱了 吐
进入栈 压入栈
出栈 弹出栈
创建一个学生类:
属性:名字 JavaSE分数 JavaWeb分数
方法:汇报成绩
我叫XXX 我JavaSE的分数是XXX,我java web分数是XXX
创建一个main方法的类
创建两个学生对象,分别给属性赋值,分别调用汇报成绩方法
问题:
在PG类中,age是public 或默认的,在TestPG的main方法中,可以随意给age属性赋值
可以赋无意义的值
如何避免这种情况?
private 私有的 用于修饰成员变量(属性)或方法
如果用于修饰成员变量,那么这个成员变量只能在所在类的内部可以使用,在类的外部通过
对象.属性名 将无法访问
那么在类的外部如何访问类中的private成员呢?
赋值的情况:在PG内部编写一个赋值方法
public void setAge(int age){
//对参数值进行有效范围的判断
}
获取值得情况,在PG内部编写一个获取值得方法
public int getAge(){
return this.age;
}
1、变为private
2、编写赋值方法
public void setxxx(int age){
//判断
}
3、获取值的方法
public int getXXX(){
return age;
}
局部变量:声明后就给默认值;
成员变量:自身就具备默认值