Java Day10 小结
查漏补缺:
1.形式参数的研究对象: 数组,类(具体类),借口
2.局部变量和成员变量的区别:
1)内存位置不同;
局部变量:堆
成员变量:栈
2)生命周期不同;
局部变量:随方法的调用存在/消失
成员变量:随对象的创建存在/消失
3)位置不同:
局部变量:定义在方法上或者方法中
成员变量:定义在方法外
4)初始化不同:
局部变量:使用前必须初始化
成员变量:系统会默认初始化,可以不赋值
3.封装:将属性的细节隐藏(私有化),堆外提供公共的访问方法
今日内容:
一.构造
1.概念:a)方法名和类名一致
b)没有具体返回值
c)连void也没有
2.作用:给有参数/无参数 对象进行赋值
重点:3.创建一个对象做了那些事:
Student s = new Student(); 做了哪些事情?(前三点即可)
1)在栈内存中开辟空间
2)在堆内存中申请空间
3)系统对数据进行默认初始化
4)数据的显示初始化
5)构造方法进行数据的初始化
6)初始化完毕,在堆内存空间产生一个地址值
7)将地址值赋值给栈内存,从而指向堆内存空间
重点–注:没提供无参构造方法,系统会默认提供,建议写在标准类的时候,永远给出无参构造
二.标准类
1.成员:成员变量,构造方法,成员方法
Eg:class Teather {
private String name;
private int age;
public Person(){}
public Person (String name,int age){
this.name=name;
this.age=age;
}
public void setName(String name){
this.name=name;
}
public void setAge(int age){
this.age=age;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
public void show(){
System.out.println("------");
}
}
class Demo1{
public static void main(String[]args){
Teather t = new Teather();
t.setName(“张名扬”);
t.setAge(25);
t.setSex(“男”);
System.out.println(t.getName()+"-"+t.getAge()+“岁-”+t.getSex());
t.eat();
t.sleep();
}
}
三.static静态修饰
特点: 1)随类加载而加载
2)优先于对象
3)可被多个对象公用
4)被修饰对象,方法可被类调用,也可以被对象访问
注: 1.被静态修饰也可以成为”类成员”
2.在内存中,静态不存在this关键字,this虽对象的创建而存在
3.静态只能访问静态 不能访问非静态
4.常用于定义常量(final关键字也可以)
四.文档说明的制作
1.定义方式: 开头写@author+姓名 再加@ version
2.doc输出格式: javadoc -d 目录(保存文件名目录) -author -version 工具类名.java
3.分测试类和工具类两个.java文件保存
五.代码块
1.分类: 1.局部代码块
2.构造代码块
+(构造方法代码块)
3.静态代码块
2.作用: 1)局部代码块:限定当前该局部变量生命周期,仅作用域有效
2)构造代码块:可以将多个构造方法中的相同的代码放到构造代码块中,给对象进行初始化
3)静态代码块:给类进行初始化
3.优先级:静态代码块>构造代码块>构造方法代码块
注: Math.radom 数学函数范围 [0.0,1.0)
Lang包无需导包
六.继承(extends)
1.好处:1)提高了代码的复用性
2)提高了代码的维护性
3)类和类产生这种关系是多态的前提条件
2.特点:1)只支持单继承
2)可多层继承
3.概念:找多个类共同的代码单独提取出来形成一个独立的类,多个类和当前独立的类产生一种关系:extends(继承)
4.java的开发原则:低耦合,高内聚
耦合:指类与类产生的关系(越少越好)一点一个类有问题,其他类可能都有牵连
内聚:完成一件事情的能力(一个类中如果能完成,尽量一个类完成)
5.注意事项:1)只能继承飞private曾媛,但可从继承的公共成员间接访问
2)子不能继承父的构造方法,但可以通过关键字super间接访问构造方法()
3)不要为部分功能的使用”继承”(占内存并多初始化)
Super:代表父类的空间标记(父数据的地址引用)
This:代表成员变量的空间地址标记
注:所以引用this和super可以访问当前类和父类中的成员变量,成员方法与构造方法
拓展: object是类层次的根类
在java中,所有的java类(包括:自己定的,jdk提供的)都继承object类
重点: 子类的有参/无参构造必须让父类初始化(否则会报错)
解决方法:1)可在父类中给出无参构造
2)可在第一行中用super配参数
小笔记: new Z(); 给类初始化的意思
来源:CSDN
作者:weixin_46085370
链接:https://blog.csdn.net/weixin_46085370/article/details/103866460