慕课笔记-Java入门第二季
1.java对象的使用
(1)创建对象
类名 对象名=new 类名();
(2)使用对象
引用对象的属性:对象名.属性;
引用对象的方法:对象名.方法();
Note:
①Java会给成员变量赋初始值,不会给局部变量赋初始值。
②在成员变量和局部变量重名时,局部变量有更高的优先级。
2.构造方法
构造方法与类名相同且没有返回值。
不需要用对象名.方法();的形式来调用,直接创建对象后即可调用。
当没有指定构造方法时,系统会自动添加无参的构造方法。
3.static使用
static变量,属于整个类所有而不是某个对象所有,即被类的所有对象所共享。静态变量可以使用类名直接访问,也可以使用对象名进行访问。
①静态方法中可以直接调用同类中的静态变量,但不能直接调用非静态变量。如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
②普通成员方法中,可以直接访问同类的非静态变量和静态变量。
③静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。
④创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名=new 内部类();。
⑤方法内部类定义在外部类的方法中,只在该方法内部所见,因此不能使用访问控制符和static修饰符。
4.继承的初始化顺序
①初始化父类再初始化子类;
②先执行初始化对象中属性,再执行构造方法中的初始化(和代码顺序无关)。
5.final使用
final修饰类,则该类不能被继承。
final修饰属性,则该属性不会进行隐式的初始化,必须初始化属性或者在构造方法中赋值(只能选其一)。
6.super使用
①子类的构造的过程中必须调用其父类的构造方法。
②如果子类的构造方法中没有显式调用父类的构造方法,则系统默认调用父类无参的构造方法。
③如果显式地调用构造方法,必须在子类的构造方法的第一行。
④如果子类既没有显式地调用父类的构造方法,父类又没有无参的构造方法,则编译报错。
7.Object类
所有的类默认继承Object。
①toString()方法
在Object类里面定义toString()方法的时候返回的对象的哈希code码(对象地址字符串)。
可以通过重写toString()方法表现出对象的属性。
②equals()方法
equals()方法比较的是对象的引用是不是指向同一块内存地址。
可以通过重写equals()方法来比较两个值是否一致。
示例:
public boolean equals(Object obj){
if(this==obj) //判断两个对象指向的地址是否一致
return true;
if(obj==null) //判断obj对象是否为空
return false;
if(getClass()!=obj.getClass()) //判断两个对象的值是否相等
return false;
Dog other =(Dog) obj; //将obj对象转换为Dog类型
if(age!=other.age) //判断两个对象的属性是否相等
return false;
}
8.多态
①引用多态
示例:类Dog继承类Animal
Animal obj1=new Animal(); //父类的对象引用本类的对象
Animal obj2=new Dog(); //父类的对象引用子类的对象
Dog obj3=new Animal(); 子类的对象不能引用父类的对象
Dog dog=new Dog();
Animal animal=dog; //向上类型转换,自动类型转换
if (animal instanceof Cat){ //这时候animal实际是Dog类型对象,无法转换成Cat对象
Cat cat=(Cat)animal; //向下类型转换,强制类型转换
}else{
System.out.println("无法进行类型转换");
}
②方法多态
创建本类对象时,调用的是本类的方法;
创建子类对象时,调用的是子类重写的方法、子类继承父类的方法或者子类自己的方法。
9.抽象类
抽象类约束子类中的方法。
抽象类中的抽象方法没有方法体,以分号结束。
10.接口
接口可以理解为一种特殊的类,由全局常量和公共的抽象方法组成。
类是单继承的,接口可以多继承。
接口里属性是常量,即使定义时不添加public abstract修饰符,系统也会自动加上。
接口的实现和调用和抽象类类似,以下介绍两种特殊的接口实现方式:
①IPlayGame ip=new IPlayGame(){
public void playGame(){
System.out.println("使用匿名内部类的方法实现接口");
}
};
ip.playGame();
②new IPlayGame(){
public void playGame(){
System.out.println("使用匿名内部类的方法实现接口");
}
}.playGanme();
慕课笔记-Java入门第二季的更多相关文章
- 慕课笔记-Java入门第一季
[初步复习Java编程基础,记录知识盲点和遗漏点] 1.switch语法 switch(表达式){ case 值1: 执行代码块1; break; case 值2: 执行代码块12; break; c ...
- JAVA入门第二季(mooc-笔记)
相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第二季&g ...
- Java入门第二季学习总结
课程总概 该门课程作为java入门学习的第二季,是在有一定的java基础上进行的进一步学习.由于该季涉及到了java的一些核心内容,所以相对第一季来说,课程难度有所提升.大致可将该季的课程分为五部分: ...
- Java入门 第二季第三章 继承
这是我学习慕课网Java课程的笔记,原视频链接为:http://www.imooc.com/learn/124 3-1 Java 中的继承 ★ 概念:继承是类与类的一种关系,是一种 "is ...
- 慕课网_Java入门第二季
第1章 类和对象 1-1 什么是类和对象 (07:36) 1-2 如何定义 Java 中的类 (07:18) 1-3 如何使用 Java 中的对象 (04:45) 1-4 练习题 1-5 Java 中 ...
- JAVA入门第二季 第一章 类和对象
面向对象编程 Object Oriented Programming OOP 第一.什么是类和对象 在具体说明类和对象之前,先说说别的. 眼睛在人类身体上最为有用的器官.如果一个没有了眼睛,这个人与世 ...
- Java入门第二季第2章封装
什么是 Java 中的内部类 问:什么是内部类呢? 答:内部类( Inner Class )就是定义在另外一个类里面的类.与之对应,包含内部类的类被称为外部类. 问:那为什么要将一个类定义在另一个类里 ...
- 《Java入门第二季》第四章 多态
Java 中的多态1.引用的多态:意思就是父类的句柄既可以持有本类的对象,也可以持有子类的对象. 2.方法的多态:注意点是当父类句柄持有子类对象的时候,无法调用子类特有的方法. 多态中的引用类型转换1 ...
- 慕课网-Java入门第一季-7-4 编程练习
来源:http://www.imooc.com/code/1634 小伙伴们,请根据所学知识,参考注释,在代码编辑器中将代码补充完整.编写一个 Java 程序,实现输出学生年龄的最大值 要求: 1. ...
随机推荐
- Running several name-based web sites on a single IP address.
VirtualHost Examples - Apache HTTP Server Version 2.2 http://httpd.apache.org/docs/2.2/vhosts/exampl ...
- 修改JDK环境变量,不生效的问题
一般是在/etc/profile下面配置JDK的环境变量 JAVA_HOME=/data/jdk1.7.0_72 JRE_HOME=/data/jdk1.7.0_72/jre PATH=$PATH:$ ...
- 在图片上加字符-base64转图片-图片转base64
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 深入Vue.js从源码开始(二)
从入口开始 我们之前提到过 Vue.js 构建过程,在 web 应用下,我们来分析 Runtime + Compiler 构建出来的 Vue.js,它的入口是 src/platforms/web/en ...
- Linux系统中10个常用的ps命令总结
Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps.这个工具能在命令行中使用PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系统在 ...
- Zookeeper集群搭建安装
三台 Linux虚拟机,每台都需要安装Jdk环境 1.上传Zookeeper安装包 (比较大 直接上传得了) 或者:wget https://mirrors.tuna.tsinghua.edu.cn/ ...
- 小程序observer函数的应用
需求是这样的 就是构建月份的组件中,月份小于10月的时候 显示的数字都是一个位数,需要转换成两位数, 比如8月份是8 ,那就要转换为08 ,同理可得 其他低于十月份的月份也是要这样做: 打开组件的js ...
- linux应用之perl环境的安装(centos)
1.安装Perl环境 yum install perl*这个命令基本上把perl的模块给安装齐了.yum install cpanCPAN这个就不用说了吧,大家都懂. 如果你对perl模块版本要求比较 ...
- 从Github上下载了项目,导入Android Studio,gradle 报错,应该怎么修改
一.从Github上获取源代码 我这里是直接下载ZIP文件 二.在本机的Android Studio上新建一个空白项目,目的主要是与刚从Github上下载的项目文件结构做对比 三.替换gradle文件 ...
- Gradle build-info.xml not found for module app.Please make sure that you are using gradle plugin '2.0.0-alpha4' or higher.
解决方法:去掉“Enable Instant run to host swap code/resource changes on deploy(default enabled)”的勾选项 Settin ...