title: java学习第二步
tags: java、初学、掌握java学习第二步
**1.类和对象的基础知识**
(1)类的概念:类是对事物的抽象,是对特定集合的概括描述。
(2)对象的概念:实际存在的一个物体,它是具有类类型的变量。它是某个具体类的实例。
(3)类和对象的关系:类是对象的抽象,对象是类的实例。类不占内存而对象占据内存。
(4)类的组成:属性和方法(数据成员、构造方法、方法成员),例子如下:
class Person{
//数据成员
public private String name;
//构造方法
public Person(){
}
//方法成员
public void print(){
}
}
a.数据成员 :权限修饰符、数据类型、数据成员标志符、初值。
b.构造方法 :构造方法是为了创建对象。
c.方法成员 :权限访问修饰符、返回值类型、方法成员标志符。
(5)对象的创建----必须要new来创建。(Person person=new Person();)
**2.变量**
(1)变量的作用域:四个等级,类级、对象实例级、局部级、块级。
a.类级变量又称全局变量和静态变量(需要使用static关键字修饰)。类级变量在类定以后就已经存在,占用内存,可以通过类名访问,不能实例化
b.对象实例级变量就是成员变量,实例化后才会分配内存空间,才能访问。定义在方法之外,类之内。
c.局部变量就是在方法内部定义的变量。
d.块变量就是定义在一个块内的变量,出了这个块,生存周期就结束了。(if、for语句)
(2)变量分类:按位置分为全局变量(在方法外,类内)和局部变量(方法和语句块定义的变量)
**3.方法的分类**
(1)无参无返回值
(2)无参带返回值
(3)有参无返回值
(4)有参有返回值
**4.this关键字**
this只能在非静态方法中使用,它只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。
(1)使用this来区分当前对象。
(2)在构造器中使用this来调用对象本身的其它构造器。
(3)作为返回类的引用。
**5.类加载的过程**
将由.java文件编译成的.class文件加载到jvm的过程。
(1)隐式加载:程序在运行过程中碰到通过new等方式生成对象时,隐式调用类装载器加载对应的类到jvm
(2)显式加载:通过class.forname()等方法,显示加载需要的类。
例子:
public class Demo7 {
public static void main(String[] args) {
A a=new A();
System.out.println(A.name);
}
}
class A{
public static String name="大";
static{
System.out.println(name);
System.out.println("静态初始化类A");
name="小";
}
public A() {
System.out.println("创建A类的对象");
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019071014025030.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Fpbmdfd29sZg==,size_16,color_FFFFFF,t_70)
**6.访问权限与类的继承**
访问权限:private、public、protect、default(默认不写)
继承:
(1)一个类从另一个类获取方法和属性的过程。(如类B继承了类A,则B就拥有了A的属性和方法)
(2)需要使用关键字extends。
(3)单一继承,所有的类都直接或间接的继承自Object类
继承中变量隐藏和方法重写
(1)变量隐藏:当子类的成员变量与父类的成员变量同名时(声明的类型可以不同),子类的成员变量会隐藏父类的成员变量。
(2)方法重写:当子类的方法与父类的方法具有相同的名字、参数列表、返回值类型时,且需要使用super关键字(override)。
注意:方法重载:(overload)方法名相同,形参列表有差异
super关键字的使用:
(1)构造方法第一句:调用父类的构造方法(带参数)其作用相当于new类名()-->如果不写系统会自动生成。
(2)在子类方法中通过super方法名或变量名访问父类信息。
7.final关键字
(1)在类之前,是最终类,不能被继承。
(2)在方法之前,是最终方法,方法不能被重写。
(3)在变量之前,变量不能被改变。