小汤学编程之JAVA基础day06——面向对象(一):类与对象
一、类
1.类的属性 2.类的方法 3.类的分类 4.类的创建 5.扩展:成员变量和局部变量
二、对象
1.对象的创建 2.对象的使用
一、类
类就是一类事物的抽象概念,它不指代某一个具体的事物,而是将这一类事物所具有的特点进行抽取,然后形成一个带有范围指向性的概念。
1.类的属性(名词)
比如:狗这个类的属性有,颜色、身高、性格、年龄等
2.类的方法(动词)
比如:狗这个类的方法有:跑、吃、摇尾巴、叫等
(1)修饰符
修饰符 | 代码 |
---|---|
公有的/私有的 | public/private |
静态的 | static |
没有static修饰的默认为非静态(实例),静态属于类,而实例属于对象。
(2)返回值
返回值 | 代码 |
---|---|
无返回值 | void |
基本数据类型 | int,double,Boolean等 |
引用数据类型 | String,数组等 |
写基本、引用数据类型时,注意返回值的类型一致
(3)方法的调用
静态/实例方法调用:
公有/私有方法调用:
私有的方法只能在该类里使用
公有的方法可以在另外的类被调用
(4)参数传递
调用有多个参数的方法时,传参的顺序一致,数据类型保持一致
(5)构造方法
构造方法 | 说明 |
---|---|
无参构造 | jvm虚拟机在加载类时会自动创建,每个类都默认有一个无参构造 |
有参构造 | 开发人员自己去编写,它的作用是:实例化对象的同时,为对象的成员属性赋值 |
有参构造=无参构造+set方法
// 无参构造
public Student(){};
// 有参构造
public Student(String name,int age){this.name = name;this.age = age;
};
(6)方法的重载
同一个类中,同名不同参数的两个或以上的方法叫做方法的重载。
如果类中只有有参构造,忘记了写无参构造,类中的有参构造会覆盖无参构造
如果类中有参构造和无参构造都忘记了写,虚拟机在加载该类的时候会默认帮你生成一个无参构造。
(7)扩展:this的详解
第一种情况:
this出现在一般的方法中,因为使用方法必须要调用它,所有这里this指代的是调用该方法的对象。
public void add(int num1,int num2){this.sum = num1+num2;
}
第二种情况:
1)this出现在构造方法中,因为构造方法是用new来调用的,所以这种情况和第一种不同,这里的this指代的是该构造方法构造出的对象。
public Student(String name){this.name = name;
}
2)this出现在构造方法中,且后面跟着括号是调用该类的其他构造方法,此时被调用的其他构造方法只会执行方法内代码,并不会构造新的对象。
public Student(){this("张三");
}
public Student(String name){this.name = name;// 这里的this仍然是无参构造构造的对象。
}
(8)扩展:super的详解
作用一:访问父类的成员属性或成员方法 (在子类实例或构造方法中)
作用二:访问父类的构造方法 (在子类构造方法中)
public Student(){super(); // 访问父类的构造方法super.a = 1;// 访问父类的成员属性或成员方法
}
public void rename(String name){super.a = 1;
}
3.类的分类
分类 | 说明 |
---|---|
实体类 | 粗略来说,就是可以找到与之对应的实体对象的类:比如:狗狗类,汽车类。学生类等 |
业务类 | 用来描述各种逻辑关系的类 |
实体类一般由属性(姓名,年龄等实体属性)、方法(实体能够进行的动作)和代码块构成。
4.类的创建
类一般由若干属性和若干方法组成,而两者都不是必不可少的。
public class Student{// 成员属性String name;// 方法public void read(){System.out.println("正在读书...")}
}
5.扩展:成员变量和局部变量
类的成员变量也叫全局变量,即在整个类都可以用;
用大括号里面的变量叫局部变量,只能在括号里生效。
二、对象
对象就是某一类中的具体的指代,表示的是一个实实在在的具体的事物。
由类生成对象的过程叫做实例化。
1.对象的创建
Test t1 = new Test();
2.对象的使用
(1)设置属性
t1.name = "张三";
(2)调用方法
t1.rename("李四");
小汤学编程之JAVA基础day06——面向对象(一):类与对象相关推荐
- 小汤学编程之JAVA基础day07——面向对象(二):封装、继承与多态
一.封装 1.使用步骤 2.优点 3.包结构 4.访问修饰符 二.继承 1.理解 2.重写 3.final的详解 4.防止被继承的两种方法 三.多态 ...
- 小汤学编程之JAVA基础day08——面向对象(三):抽象类与接口
一.抽象类 1.抽象类的由来 2.几点注意 3.语法规则 二.接口 1.定义方式 2.属性和方法 三.总结 一.抽象类 1.抽象类的由来 "用进废退", ...
- 小汤学编程之JAVA基础day12——异常
一.什么是异常 1.程序错误类型 2.异常的分类 3.深入认识异常 二.异常的继承结构 三.常见的异常收集 四.虚拟机对异常的两种处理方式 1.捕获异常 2.声明和抛出异常 五 ...
- 小汤学编程之JAVA基础day02——数据类型、Scanner类的使用
一.JAVA的数据类型 1.变量 2.常量 3.基本数据类型 4.引用数据类型 5.数据类型转换 二.Scanner类的使用 1.作用 2.引入 3 ...
- 小汤学编程之JAVA基础day14——xml和反射
一.xml 1.简介 2.特点 3.使用步骤 二.Reflect反射 1.概念 2.理解Class类 3.反射的功能 4.两个案例 一.xml 1.简介 xml ...
- 小汤学编程之JAVA基础day09——常用类(一):比较器、内部类和包装类
一.比较器 1.内部比较器 2.外部比较器 二.内部类 1.成员内部类 2.静态内部类 3.局部内部类 4.匿名内部类 三.包装类 1.概念 2.包装类的应用 ...
- 小汤学编程之JAVA基础day05——数组
一.概念 1.什么是数组 2.为什么要用到数组 二.使用方法 1.声明并分配空间 2.赋值 3.处理数据 三.数组的各种应用 1.求数组中最大/最小值 2.数组反 ...
- 小汤学编程之JAVA基础day04——流程结构
一.认识流程图 二.顺序结构 三.选择结构 四.循环结构 五.扩展&代码块的概念 一.认识流程图 二.顺序结构 体现在程序进入某个方法后,从上到下没有分支的顺序执行. 三.选择结构 1.if选 ...
- 小汤学编程之JAVA基础day15——枚举、注解和Properties
一.枚举 1.枚举的来由 2.枚举的作用 3.枚举的特点 4.扩展:switch里可以传入哪些类型的值 二.注解 1.作用 2.注解的种类 3.自定义注解 ...
最新文章
- 一.Linq to JSON是用来干什么的?
- LeetCode: 105. Construct Binary Tree from Preorder and Inorder Traversal
- java创建文件夹代码_Java创建文件夹及文件实例代码
- 支持向量机:Outliers
- SpringBoot | 自动配置原理
- php 函数有命名空间吗_一篇弄懂PHP命名空间及use的使用
- CentOS6.5启动网络
- 编程入门到进大厂,分享一点学习经验
- (转载)Python函数参数传递机制(超级详细)
- centos 7配置rsync源服务器
- 程序员笑话集锦之丈夫与妻子篇
- 调查了 10,975 位 Go 语言开发者,我们有了这些发现!
- 微信小程序API之video
- 力扣-606. 根据二叉树创建字符串
- php tpshop,TPshop是什么意思?
- kalilinux生成安卓木马(仅供学习使用)
- JAVA中下载文件名含有中文乱码一种少见的解决方案
- Dreamweaver CC 2017中文版
- 并联串联混合的电压和电流_困惑了很久的串联/并联谐振电路详解
- 手机礼物iPhone 5, Note II, Butterfly