马士兵java教程笔记1

时间:2022-09-20 08:48:04

---恢复内容开始---

前记

虽然已经是个研究生了,但是会的东西还是特别的少 甚至连java都不能说是很会 所以准备从现在开始能好好的学习java 变成java master

标识符

  • 标识符是由字母、_、$或数字组成 
  • 标识符应以字母、下划线、$开头(不能以数字开头)
  • java标识符大小写敏感,长度无限制

java变量

变量本质上是内存中的一小块区域,使用变量名来访问这块区域。每个变量使用前必须要先申 ,然后必须进行赋值,才能使用

 double d1,d2,d3 = 0.123;//只有d3是0.123

马士兵java教程笔记1

 

 方法的作用域:出了大括号 没人认识了

面向对象部分

类和对象:类可以看成一类对象的模板,对象可以看成该类的一个具体实例

关联关系:一个类的方法参数是另一个类的对象 (最弱的关系)

继承关系:xx是一种xx(一般和特殊)

聚合关系:(整体和部分)聚集 、组合(更严格,密不可分)

实现关系: 

应该有 多少个类多少个对象-》这些类和对象里有多少属性和方法-》类和类之间的关系

 

定义成员变量时可以对其初始化,如不对其进行初始化,java使用默认的值对其进行初始化

 

java语言中除基本类型之外的类型都称为引用类型,引用类型占两块内存,一块是地址,另一块是new出来的东西 放在堆内存里

如何在内存中区分 类 和 对象:

类是静态的概念,位于代码区

对象是new出来的,位于堆内存,类的每个成员变量在不同的对象中都有不同的值(除了静态变量)

 

构造方法

使用new+构造方法 创建一个新对象;当没有制定构造函数时,编译器为类自动添加形如  类名(){}的构造函数

 this

在类的方法定义中使用的this关键字代表使用该方法的对象的引用

当必须指出当前使用方法的对象是谁时要使用this

有时使用this可以处理方法中成员变量和参数重名的情况

this可以看作是一个变量,它的值是当前对象的引用

 

static 关键字

在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员共享

 用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给他,所以在static方法中不可访问非static的成员

静态方法不再是针对某个对象调用,所以不能访问非静态成员

可以通过对象引用或类名访问静态成员

 

Java权限修饰符public protected private置于类的成员定义前,用来限定其他对象对该类对象成员的访问权限

修饰符

类内部

同一个包

子类

任何地方

Private

y

 

 

 

Default

Y

y

 

 

Protected

Y

y

y

 

Public

Y

y

y

y

 

继承能把父类所有的东西都继承下来,但是 private和default不能访问

对于class的权限修饰只可以用public和default

Public类可以在任意地方被访问

Default类只可以被同一个包内部的类访问

 

类的继承与权限控制

Java中使用extends关键字实现类的继承机制 (xx是一种xx)

通过继承,子类自动拥有了基类的所有成员(成员变量和方法)

Java只支持单继承,不允许多继承(一个子类只能有一个基类 一个基类可以派出多个子类)

 

方法的重写 overwrite

在子类中可以根据需要对从基类中继承来的方法进行重写

重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型

重写方法不能使用比被重写方法更严格的访问权限

 

 

---恢复内容结束---

前记

虽然已经是个研究生了,但是会的东西还是特别的少 甚至连java都不能说是很会 所以准备从现在开始能好好的学习java 变成java master

标识符

  • 标识符是由字母、_、$或数字组成 
  • 标识符应以字母、下划线、$开头(不能以数字开头)
  • java标识符大小写敏感,长度无限制

java变量

变量本质上是内存中的一小块区域,使用变量名来访问这块区域。每个变量使用前必须要先申 ,然后必须进行赋值,才能使用

 double d1,d2,d3 = 0.123;//只有d3是0.123

马士兵java教程笔记1

 

 方法的作用域:出了大括号 没人认识了

面向对象部分

类和对象:类可以看成一类对象的模板,对象可以看成该类的一个具体实例

关联关系:一个类的方法参数是另一个类的对象 (最弱的关系)

继承关系:xx是一种xx(一般和特殊)

聚合关系:(整体和部分)聚集 、组合(更严格,密不可分)

实现关系: 

应该有 多少个类多少个对象-》这些类和对象里有多少属性和方法-》类和类之间的关系

 

定义成员变量时可以对其初始化,如不对其进行初始化,java使用默认的值对其进行初始化

 

Java权限修饰符public protected private置于类的成员定义前,用来限定其他对象对该类对象成员的访问权限

修饰符

类内部

同一个包

子类

任何地方

Private

y

 

 

 

Default

Y

y

 

 

Protected

Y

y

y

 

Public

Y

y

y

y

 

继承能把父类所有的东西都继承下来,但是 private和default不能访问

对于class的权限修饰只可以用public和default

Public类可以在任意地方被访问

Default类只可以被同一个包内部的类访问

 

类的继承与权限控制

Java中使用extends关键字实现类的继承机制 (xx是一种xx)

通过继承,子类自动拥有了基类的所有成员(成员变量和方法)

Java只支持单继承,不允许多继承(一个子类只能有一个基类 一个基类可以派出多个子类)

 

方法的重写 overwrite

在子类中可以根据需要对从基类中继承来的方法进行重写

重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型

重写方法不能使用比被重写方法更严格的访问权限

java语言中除基本类型之外的类型都称为引用类型,引用类型占两块内存,一块是地址,另一块是new出来的东西 放在堆内存里

如何在内存中区分 类 和 对象:

类是静态的概念,位于代码区

对象是new出来的,位于堆内存,类的每个成员变量在不同的对象中都有不同的值(除了静态变量)

 

构造方法

使用new+构造方法 创建一个新对象;当没有制定构造函数时,编译器为类自动添加形如  类名(){}的构造函数

 this

在类的方法定义中使用的this关键字代表使用该方法的对象的引用

当必须指出当前使用方法的对象是谁时要使用this

有时使用this可以处理方法中成员变量和参数重名的情况

this可以看作是一个变量,它的值是当前对象的引用

 

static 关键字

在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员共享

 用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给他,所以在static方法中不可访问非static的成员

静态方法不再是针对某个对象调用,所以不能访问非静态成员

可以通过对象引用或类名访问静态成员

 

super

1)super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句) 

2)this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)

 3)super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参)

4)this:它代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)

5)调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。

6)super()和this()类似,区别是,super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。

7)super()和this()均需放在构造方法内第一行。

8)尽管可以用this调用一个构造器,但却不能调用两个。

 9)this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。

 10)this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块

 11)从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。

 

Object 

equals()

getclass()

hashcode() 返回hash编码

toString() public String toString()方法,其返回值是String类型;在进行String与其他类型数据的连接操作时,将自动调用该对象类的toString()方法;可以根据需要重写toString()方法

 

equals

object类中定义有:

public boolean equals(Object obj)方法 提供定义对象是否相等的逻辑

Object的equals方法定义为:x.equals(y)当x和y所引用的对象是同一类对象且属性内容相等时,返回true否则返回false

J2SDK提供的一些类,如String,Date等,重写了Object的equals方法

 

对象转型(casting)

一个基类的引用类型变量可以指向其子类的对象

一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)

可以使用引用变量instanceof类名来判断该引用型变量所指向的对象是否属于该类或该类的子类

子类的对象可以当作基类的对象来使用称作向上转型upcasting,反之成为向下 downcasting 

 

动态绑定和多态

动态绑定是指 在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法

多态的必要条件:

要有继承 要有重写 父类引用指向子类对象