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入门第二季的更多相关文章

  1. 慕课笔记-Java入门第一季

    [初步复习Java编程基础,记录知识盲点和遗漏点] 1.switch语法 switch(表达式){ case 值1: 执行代码块1; break; case 值2: 执行代码块12; break; c ...

  2. JAVA入门第二季(mooc-笔记)

    相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第二季&g ...

  3. Java入门第二季学习总结

    课程总概 该门课程作为java入门学习的第二季,是在有一定的java基础上进行的进一步学习.由于该季涉及到了java的一些核心内容,所以相对第一季来说,课程难度有所提升.大致可将该季的课程分为五部分: ...

  4. Java入门 第二季第三章 继承

    这是我学习慕课网Java课程的笔记,原视频链接为:http://www.imooc.com/learn/124 3-1 Java 中的继承  ★ 概念:继承是类与类的一种关系,是一种 "is ...

  5. 慕课网_Java入门第二季

    第1章 类和对象 1-1 什么是类和对象 (07:36) 1-2 如何定义 Java 中的类 (07:18) 1-3 如何使用 Java 中的对象 (04:45) 1-4 练习题 1-5 Java 中 ...

  6. JAVA入门第二季 第一章 类和对象

    面向对象编程 Object Oriented Programming OOP 第一.什么是类和对象 在具体说明类和对象之前,先说说别的. 眼睛在人类身体上最为有用的器官.如果一个没有了眼睛,这个人与世 ...

  7. Java入门第二季第2章封装

    什么是 Java 中的内部类 问:什么是内部类呢? 答:内部类( Inner Class )就是定义在另外一个类里面的类.与之对应,包含内部类的类被称为外部类. 问:那为什么要将一个类定义在另一个类里 ...

  8. 《Java入门第二季》第四章 多态

    Java 中的多态1.引用的多态:意思就是父类的句柄既可以持有本类的对象,也可以持有子类的对象. 2.方法的多态:注意点是当父类句柄持有子类对象的时候,无法调用子类特有的方法. 多态中的引用类型转换1 ...

  9. 慕课网-Java入门第一季-7-4 编程练习

    来源:http://www.imooc.com/code/1634 小伙伴们,请根据所学知识,参考注释,在代码编辑器中将代码补充完整.编写一个 Java 程序,实现输出学生年龄的最大值 要求: 1. ...

随机推荐

  1. java之选择排序

     //选择排序(Select Sorting)也是一种简单的排序方法.它的基本思想是:第一次从R[0]-R[n-1]中选取最小值,与R[0]交换,第二次从R[1]-R[n-1]中选取最小值,与R[1] ...

  2. 关于myeclipse缓存问题

    昨天在部署项目的时候发现,刚检出的项目jdk竟然不是1.6版本的了,而是新的(在此之前每次检出项目都会重新设置一下jdk),如图所示: 当时还在想,真好,以后就不用配置了,但是随之而来的是一个重大问题 ...

  3. linux杂谈(十四):ftp的企业应用级的配置(一)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/linux_player_c/article/details/24869877 1.ftp简单介绍 ( ...

  4. 操作系统:Bochs 2.6.8的配置文件bochsrc.bxrc修改

    由于现在Bochs 2.6.8相比之前有些改动,之前的配置文件不能直接运行,针对配置文件需要有些修改. 1. 配置文件 ######################################## ...

  5. Codeforces Round #198 (Div. 2) E. Iahub and Permutations —— 容斥原理

    题目链接:http://codeforces.com/contest/340/problem/E E. Iahub and Permutations time limit per test 1 sec ...

  6. Codeforces Round #374 (Div. 2) C. Journey —— DP

    题目链接:http://codeforces.com/contest/721/problem/C C. Journey time limit per test 3 seconds memory lim ...

  7. 动态负载均衡(Nginx+Consul+UpSync)

    Http动态负载均衡 什么是动态负载均衡 传统的负载均衡,如果Upstream参数发生变化,每次都需要重新加载nginx.conf文件, 因此扩展性不是很高,所以我们可以采用动态负载均衡,实现Upst ...

  8. 步入C编程的第一天

    我想学ruby以后开发网站,但ruby是高级语言,隐藏了许多底层的东西,因此先熟悉c语言 首先c程序的文件名是以.c结尾的 c程序的格式: 第一行#include<stdio.h> #是一 ...

  9. 【mysql】mysql innodb 配置详解

    MySQL innodb 配置详解 innodb_buffer_pool_size:这是InnoDB最重要的设置,对InnoDB性能有决定性的影响.默认的设置只有8M,所以默认的数据库设置下面Inno ...

  10. ffmpeg遇到inttypes.h和UINT64_C

    http://blog.csdn.net/cll131421/article/details/7763657 编译过程:错误一:无法打开包括文件:“inttypes.h”: No such file ...