第二周总结
本周因在医院陪床,学习效率降低很多,下周提高效率。
大纲
1、对象的理解
2、使用对象相关(创建、使用、成员及局部变量、构造方法)
3、static相关(静态变量、静态方法、静态初始化块)
4、JAVA中的类(lang、util、io)
5、封装(创建、调用)
6、包的使用(import关键字调用)
7、访问修饰符(适用范畴)
8、this语法
9、内部类(成员、静态、方法)
10、继承
11、final关键字
12、super关键字
13、object类中的方法(toString()、equals()方法)
14、多态(引用多态、方法多态、类型转换)
15、instanceof用法
16、抽象类
17、接口相关内容
正文
1、对象相关定义的理解:
类:模子,确定对线的属性及方法 如手机
对象:有具体实物的,客观存在的 华为MATE9
属性:对象的特点 手机内存,CPU型号
方法:对象的行为 打电话,发短信
2、使用对象
(1)、创建对象
类名 对象名=new 类名();
World Asia=new World();
(2)、使用对象
引用属性:Asia.chi=100;
调用方法: Aisa.bus();
3、成员变量、局部变量
成员变量定义在类中;
局部变量定义在方法里;
4、构造方法
无参的构造方法:可以创建对象并赋初值(为0);
有参的构造方法:调用方法时需给实例变量赋值;
5、static 使用之静态变量
ublic class HelloWorld {
static String className = "JAVA1班";// 定义静态变量
public static void main(String[] args) {
HelloWorld ban=new HelloWorld(); //创建构造方法(对象)
System.out.println(HelloWorld.className); //通过类来调用静态变量
System.out.println(ban.className);//通过对象来调用静态变量
ban.className="JAVA2班";//只能在对象中更改静态变量
System.out.println(ban.className);//通过对象调用的静态变量已更改
}
}
6、static 使用之静态方法
public class HelloWorld {
// 定义静态变量score1
static int score1 = 86;
// 定义静态变量score2
static int score2 = 92;
// 定义静态方法sum,计算成绩总分,并返回总分
public static int sum() {
int a=score1+score2;
return a;
}
public static void main(String[] args) {
// 调用静态方法sum并接收返回值
int allScore = HelloWorld.sum();
System.out.println("总分:" + allScore);
}
}
注:1、 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。
7、static 使用之静态初始化块
运行结果:
注:程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。
8、JAVA中的类
java.(功能).类
java.lang.(类) 包含java语言基础
java.util.(类) 包含各种自带的工具类 如scannner,Arrays
java.io.(类) 有关输入和输出相关的类
9、封装
面向对象的三大特性:封装,继承,多态。
封装实现步骤:(1)设为 private (2)创建getter/setter方法 (3)在getter/setter方法中加入属性控制语句
注:也可以用其他方法,但是不标准,封装这里还是按照规范,用setter/getter比较好;
例子:
(1)、创建
(2)、调用
10、包的使用
通过import关键字,在某个文件中使用其他文件中的类(可以是同名)
例:import com.a.music.xx import com.b.music.xx
注1:包命名规范为小写
注2:import com.a.music.* 为导入本包(或类)里的所有内容
11、访问修饰符
12、this关键字
this.属性 调用当前对象的属性
this方法 调用当前对象的方法
注:在封装中,this起到分辨变量和参数值的作用,尤其在IDEA等自主生成getter,setter语法的时候,经常参数名字与变量名称一致,这样前面多个this可以起到防止计算机识别错误的作用,分清是谁给谁赋值。
13、内部类:
(1)成员内部类:
定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去 new 一个内部类对象,即:内部类 对象名 = 外部类对象.new 内部类( );
例: //创建外部类的对象
HelloWorld o = new HelloWorld ();
//创建内部类的对象
Inner inn = o.new Inner();
(2)静态内部类:
创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();,并通过对象名直接调用方法或属性;
例:
(3)方法内部类:
注:由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符和 static 修饰符。
14、继承:
(1)语法规则:class 子类 extends 父类{
}
注:private修饰的属性不能继承,只能从父类创建对象然后通过getter/setter方法调用;
(2)重写
通过重写可以使子类改变一些赋予的属性或方法的参数,但格式必须与父类一致
(3)初始化顺序(影像赋值的结果)
优先进行父类的初始化,再进行子类的初始化,优先进行属性,后进行方法。
15、final关键字
16、super关键字
注:父类和子类都有构造方法时,调用的时候会同时运行父类和子类的两个构造方法(相当于隐形super)
17、object类中的方法
(1)toString()方法
可以在子类中重写父类中的属性:
(2)equals()方法
注:返回的值是布尔类型,及true或者fauls
有两个作用:
<1 比较两个类的内存区域是否相同,确定是否为同一个对象(通过内存区域判断)
<2 比较两个对象的属性是否相同
18、多态
注:使用多态必须要有父类与子类的继承关系
(1)引用多态 父类可以指向本类或子类的对象
例:human aa=new human();
human aa=new chinese();
(2)方法多态
若不给子类设置特殊项,调用方法的输出内容即为父类的方法
(3)类型转换
(4)instanceof用法
通过此运算符避免类型转换的安全性问题
19、抽象类 abstract
格式:
public abstract class Shape {
public abstract void mianji();
public abstract void zhouchang();
}用于使继承更加灵活,父类只限定子类应该有什么属性和方法,但是具体如何实现由子类完成,因此用抽象类修饰时不能赋予固定参数。
20、接口
(1)其实是规范,约束类该有的方法和属性。
注:定义接口的时候名称前一般加上I作为区分接口和类。
(2)定义语法:
(3)调用语法:
(4)匿名内部类实现接口(两种语法格式)
本文总结了Java面向对象的基础知识,包括对象的理解与使用、类与对象的创建、成员与局部变量的区别、构造方法的使用、静态变量与方法的应用、封装的概念与实现、包的使用、访问修饰符的作用、this关键字的功能、内部类的种类与使用、继承的基本规则与重写方法、final与super关键字的用法、Object类中的方法介绍、多态的概念与应用、抽象类与接口的区别与联系。
479

被折叠的 条评论
为什么被折叠?



