类class
1、什么是类?
类是世界上的某种事物总称,如:人类、牛类、动物类、植物类、学生类、医院类等。
类是对事物抽象而得到的。
2、什么是包?
包:就是一个文件夹,而且可以带多级的文件夹,用于管理类文件和下一级包
格式: package ljg.com.cn;
3、类的定义
定义格式
package ljg.com.cn; //包:就是一个文件夹,而且可以带多级的文件夹,用于管理类文件和下一级包 public class Student { // 1 抽象成员属性就是成员变量 private int id; private String name; private Integer age; private Integer weight; private String address; // 2 抽象构造器: 特点,名字和类名相同,可以带不同的参数,没有返回值 // 作用:创建对象时,系统自动调用,用于初始化对象的初值 //2.1无参构造器初始化对象时,int属性的值0,float属性值为0.0,String、Integer为空null public Student() { } //2.2 两参构造器造器初始化对象时,int属性的值0,float属性值为0.0,String、Integer为空null //只有id属性和name为实际传输的值(实参) public Student(int id, String name) { this.id = id; this.name = name; } //2.3 多参构造器初始化对象时,就是实参的值初始化对象的值 public Student(int id, String name, Integer age, Integer weight, String address) { this.id = id; this.name = name; this.age = age; this.weight = weight; this.address = address; } //3 抽象类的行为:就是动作,动作就是功能 public void xuexi(String name,int hour){ System.out.println(name+"我学习,我快乐,我非常高兴,天天都学习到"+hour+"点"); } private void mm(String name,String total){ System.out.println("我是"+name+"我的密码就是这样的"+total); } protected void eat(String name,String foodname){ System.out.println("我是"+name+"美食家"+"每天就是吃"+foodname); } // 4 重新写toString方法,用于输出所有的内容 //fn+alt+ins键选中toString(),全选点击OK @Override public String toString() { return "Student{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + ", weight=" + weight + ", address='" + address + '\'' + '}'; } //这个类带主方法 public static void main(String[] args) { // 1 第一种方法创建对象,无参构造器的应用 Student s1 = new Student(); System.out.println(s1.id); System.out.println(s1.name); System.out.println(s1.age); System.out.println(s1.weight); System.out.println(s1.address); s1.eat("王晓凯","红烧肉+麻辣烫"); s1.xuexi("王晓凯",23); s1.mm("王晓凯","有点高兴,有点快乐,有一万放在没有人知道的地方"); System.out.println("========================================="); Student s2 = new Student(2001, "李先名"); System.out.println(s2.id); System.out.println(s2.name); System.out.println(s2.address); System.out.println(s2.age); System.out.println(s2.weight); s2.eat(s2.name,"小米粥"); s2.eat("李天天","小豆腐"); System.out.println("========================================="); Student s3 = new Student(3000, "王丽丽", 21, 100, "河东院8号楼"); System.out.println(s3.toString()); } }
4、什么是对象?
对象就是实际存在的某个类的每一个个体,因而称为实例
5、对象的创建
格式1 类名 对象名
对象名=new 类名()
格式2 类名 对象名=new 类名()
功能:
用类创建一个对象
为该对象分配引用类型的内存空间
自动调用构造函数初始化对象的初值
6、方法
用函数编写 表现类的行为就是类的某个功能,功能就是动作
(1)方法是什么
方法又叫函数,能完成一定的功能,是类的组成部分。在类中主要完成行为(功能)操作。
(2)方法(函数)的定义
格式
【权限修饰符】 返回值数据类型 方法名(形参1,形参2.。。。。)
{
方法体(函数体)
Java的语句,完成一定的功能
定义的变量
语句序列;
}
(3)方法的修饰符
作用:对方法访问权限的设定
修饰符
public:公共方法(属性),该方法(属性)可以被所有的类访问
private:私有方法(属性)
只能被定义它的类、或者他的方法访问,其余的一概拒绝访问
protected:保护方法,可以被该类,该类的子类,同一个包中的其他类,不同包的其他类 不能访问。目的是,是其他类中的子类能够访问父类中的成员变量和成员方法。
(4)局部变量
在某个范围内生命周期有效的变量,称为局部变量。
7、继承和多态
一、类的封装
1、封装
封装就是将代码及其处理的数据绑定在一起的一种编程机制。
2、Java的封装
在Java语言中,对象就是对一组变量和相关方法的封装,其中变量说明了对象的状态,方法表明了对象具有的行为,通过他封装实现类模块化和信息的隐藏,通过对类的成员设置一定权限,实现类中成员的信息隐藏。
3、对Java封装的理解
封装就是利用抽象数据类型对象数据和基于数据操作结合在一起。
二、类的继承
1、继承extends
继承是一个类获得另一个类的属性或者行为的过程。由继承得到的类(就是创建的新类)叫子类,被继承的类叫父类。继承是创建子类的方法,父类创建了子类,子类继承公有的,受保护的属性和方法,不能继承私有的属性和行为!
继承的好处:是避免重复写重样的代码
继承具有传递性
(1)父类继承父类,父类继承父类,子类会简介继承他的祖先类的属性和行为。
(2)子类集合成父类,可以修改父类的状态(修改变量的值)也可以重载父类的行为,添加新的功能。
5、重写
方法的重写是:在子类中方法的名字和父类相同,方法返回值类型父类相同,方法的参数父类相同,方法的权限父类相同,方法的功能可以相同也可以不同的从新编写称为方法的重写。
条件:在子类中重写父类的方法。
6、重载
重载的概念:方法名字相同,方法返回值类相同或不同,形参个数不同或者形参的数据类型不同,形参的瞬息不同,方法的功能可以相同也可以不同的方法重新编写,就称为方法的重载。
区别:
1、重载是在一个类中对一个方法的多态设置
2、重写是在子类重新编写父类中的方法,而且重写只有一次
3、重写的方法可以多次重载。
7、super
(1)super 它表示父类
2)this 它是这个对象的本身
3)supper 的使用规则
用来调用父类隐藏的成员变量和成员方法,格式super.成员变量
用来调用父类中被重写的 格式super.方法(参数1)
用来调用父类中的构造方法 格式super(参数列表)
8、多态性
多态性是指同名的不同方法值类中共存,就是一个类中有多个同名的方法,系统会根据调用方法时传递的实参个数或顺序或类型来决定调用那个一个,这样同一个方法就具有了不同的功能,或者是行为,称为多态性。
多态性是通过重载(Overload)和重写(Override)完成的。