博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象
阅读量:6209 次
发布时间:2019-06-21

本文共 2430 字,大约阅读时间需要 8 分钟。

一,面向对象的三大特征

封装,继承,多态。

二,类

类 = 成员变量 + 方法

或 

类 = 属性 + 动作

三,类和对象

1,类是对象的抽象

2,对象是类的具体

四,对象的创建和使用

1,使用new关键字创建一个对象

2,一个类可以创建多个对象,实例(成员)变量只属于当前对象

3,可以定义和系统类重名的类

4,在实例变量或局部变量可以使用自定义类型

五,实例变量与局部变量

1,位置

实例变量:在方法体外,类体内定义的变量

局部变量:定义在方法体内

2,使用

实例变量:有默认值,无需赋值

局部变量:必需先声明,后赋值,再使用

3,实例变量默认值

a,基本数据类型

byte,short,int,long : 0

char: \u0000

float,double:0.0

boolean:false

b,引用数据类型

null

六,成员方法

1,没有static关键字修饰的方法叫成员方法

2,对象名.方法名调用成员方法

3,成员方法,无论变量是静态亦或是实例,都可以访问

七,构造方法(构造器)

1,作用

a,可以实例化对象

b,可以将对象的属性值进行初始化操作

c,可以将实例对象要做的事,写在构造方法中

2,使用时注意事项

a,名称必须和类名一致(包括大小写)

b,没有返回类型,也不用void修饰

c,每个类至少有一个构造方法,若我们没有显式声明,

那么系统会自动提供一个无参的。

d,若显式声明了有参的构造方法,就不会提供默认的无参构造方法

如果还需调用无参的,则需要我们手动再声明一个无参构造了

e,一个类可以有多个重载的构造方法

f,构造方法不能随意调用,只能写在new关键字后面,

由系统来调用,而且只会调用一次

八,方法参数的传递

1,基本数据类型传递的是值

2,引用数据类型传递的是内存地址

例:

将俩个int数用方法交换,不会交换

将俩个String的进行交换,会改变

九,this

1,指当前对象

2,使用场景

a,通过this调用构造方法,如果使用this调用构造方法,

那么this语句必须要出现在方法的第一行,否则编译报错

this(1997,1,1);

b,当局部变量和成员变量重名时,可以使用this调用指定的成员变量

十,static

1,静态变量和实例变量

a,实例变量通过 对象名.变量名 访问,存放在堆中

b, static修饰的变量为静态变量,通过 类名.静态变量名 访问

存放在方法区,和类存放在一起

c,静态变量归类所有,所有该类的对象都可以访问和修改

d,成员方法不能定义静态变量

2,静态方法

a, static修饰的方法叫做静态方法,使用 类名.静态方法名 调用

b,静态方法只能调用其它静态方法,只能访问静态变量

c,定义工具类时,可以使用静态方法

十一,代码块

1,局部代码块

在方法中出现,限定变量使用区域

2,构造代码块

在类体内,方法外出现,优先于构造方法执行

3,静态代码块

a,被static修饰的代码块叫做静态代码块,

JVM在加载类的时候会执行静态代码块,执行一次

b,在类体内,方法外出现,在类加载的时候执行,并只执行一次

public class TestStatic {    public static void main(String[] args) {                //局部代码块        {            int a = 10;            System.out.println(a);        }                //System.out.println(a);            }            //构造代码块    {            }        //静态代码块    static {            }}

 

c,同步代码块

转至多线程讲解

1 package e; 2  3 public class e { 4  5      public static void main(String[] args) { 6          Son son = new Son(); 7           8          System.out.println("11.静态代码块"); 9         10     }11 12         13     }14 15 16 class Father{17     static {18         System.out.println("1.静态代码块父");19     }20     {21         System.out.println("2.构造代码块父");22     }23     public Father() {24         System.out.println("3.构造方法父");25     }26 }27 class Son extends Father{28     static {29         System.out.println("4.静态代码块子");30     }31     {32         System.out.println("5.构造代码块子");33     }34     public Son() {35         System.out.println("6.构造方法子");36     }37 }38 39 输出:40 1.静态代码块父41 4.静态代码块子42 2.构造代码块父43 3.构造方法父44 5.构造代码块子45 6.构造方法子46 11.静态代码块

 

十二,静态导入

鸡肋存在

十三,

 

转载于:https://www.cnblogs.com/IvanAngel/p/9795251.html

你可能感兴趣的文章
cenOS-telnet refused问题
查看>>
CNKI知网如何批量下载论文
查看>>
Linux C下变量和常量的存储的本质
查看>>
要学的
查看>>
【sqlserver】批量插入10万数据
查看>>
javaWeb:什么叫监听器
查看>>
创建WEB测试计划
查看>>
C#颜色和名称样式对照表
查看>>
【转】JS组件系列——Bootstrap组件福利篇:几款好用的组件推荐(二)
查看>>
构建之法阅读笔记04
查看>>
c语言_判断例子
查看>>
vi 替换操作
查看>>
Html的智能表单
查看>>
Python基础之字典、元祖、常用字符串方法、文件读写
查看>>
记一次面试(论基础的重要性)
查看>>
GDB调试
查看>>
LeetCode-Microsoft-Populating Next Right Pointers in Each Node
查看>>
spring webapp的配置文件放置在项目外的方法
查看>>
chrome 修改请求头的小工具
查看>>
苹果手机上input的button按钮颜色显示问题
查看>>