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

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

JAVA 面向对象

一、概念

1.什么是对象?

①.生活中看的见摸得着的事物,即是对象——万物皆对象

②.问题中出现的人,事物,或者实体。
③.由属性和行为组成。

电脑,手机,书,杯子,灯泡,都可以是对象。

2.什么是类?

类:是具有相同属性和方法的一堆对象的集合。

3.类与对象的关系?

①.类是对象的描述。

②.对象是类的实例。

二、对象,类与包

1.程序中的类

A.类:

  1. 类的名称:首字母要大些,如:Student。
  2. 类的成员变量:也就是类中所包含的对象。
  3. 类的方法,也就是函数。

B.类的成员变量:

  1. 访问修饰符:public、private或protected。省略时为默认修饰符
  2. 数据类型
  3. 成员变量名:名称必须是一个有效的标识符,分号结束

C.类的方法:

  1. 访问修饰符
  2. 返回值
  3. 方法名称,必须是有效的标识符
  4. 参数列表,出现在括号中

2.创建类:

Java中类用关键字class声明。

Java源代码文件中只能包含一个公用类(public),文件名必须与公用类的类名相同,文件扩展名为“.java”。

程序实例:

public class Student {    //初始值  //成员变量 ,全局变量    String name;    int  number;//0    double score;    long phone;    //向类中添加方法(函数):声明一个方法体data();    //static静态方法调用时,参数必须同样为static    public void data(){        long phone = 1111;//------声明一个局部变量 phone; 局部变量必须初始化一个值;        System.out.println(number+"号  姓名:"+name+" "+"电话:"+phone);//就近原则输出    }    public double fun(){        return this.number/2;    }  }

3.构造函数

类的构造函数:访问修饰符 + 函数名。

1. 名称必须与类名相同;
2. 不能声明返回值,不能返回void。
有参与无参构造函数:在有参构造函数前,放一个无参构造函数,防止报错。

使用this();调用无参构造函数,放在方法第一行。

使this(x,y) ;调用有参构造函数,放在方法第一行。
每一次实例化都会调用一次构造函数。

public class Student {    String name;    long phone;//0    double score;    public void data(){    }    public Student(String name,long phone){        data();            ------------- 调用无参构造函数        this.name = name;        this.phone = phone;        long phone = 1111;        System.out.println(number+"号  姓名:"+name+" "+"电话:"+phone);    }    public void Student(String name){        data(name,phone);  ------------- 调用有参构造函数        System.out.println(number+"号  姓名:"+name);    } }

4.类的引用 —— 实例化

在Java程序中,通过new运算符对类的对象进行引用。

Student s;s = new Student(); 

引用s指向内存中的Student对象。运算符new为该对象分配内存,然后对该对象的所有成员变量赋予初始值。从而不产生垃圾数据。

实例化就是在内存中创建了两个实体:一个引用和一个对象。

程序的整个过程:引用一个类,通过new实例化,由classload类加载器完成,转换为class类型。再通过构造函数将类变成具体的对象。

5.访问对象的属性和方法

访问对象的成员变量和方法时,必须与某个对象关联!

例如:

Student s = new Student();s.name = "张三";s.data();

6.this引用

每个对象都可以使用this关键字引用自身。

public double fun(){    return this.number/2;}

无论我们是否显式地添加了this引用,编译器都会自动添上。

7.包(文件夹)的使用

每个类都属于一个包。包名可以成为类名的前缀。

包的用途主要有两个:
1.将类组织关联起来
2.为包中的类提供一个命名空间。

test1.Student s = new test1.Student(); test2.Student s = new test2.Student();

包的引用可以避免两个包中相同名字类的命名冲突。

在为明确声明一个类在一个包的时候,类会存在默认的包(default package)中。

8.数组类的引用

  1. 定义与实例化:一个数组类,数组中的一个类为数组一个的对象
  2. 内存分配: 类的引用名存在栈中,指向堆中具体的类。而每一个类又分别存在堆的的数组中。
  3. 堆栈:所有数据都存在栈和堆中。

栈:存放所有基础数据类型,包括引用名。 特点:空间小,先执行。调用皆入栈,入栈必执行。

堆:存放所有引用类型。内存地址都放在堆中。 特点:空间大,运行慢,由栈指向堆。

转载于:https://www.cnblogs.com/hyqs1314520/p/6219824.html

你可能感兴趣的文章
Git- Fatal: cannot do a partial commit during a merge
查看>>
Rust lang Helloworld
查看>>
Zato学习笔记1 安装
查看>>
elasticsearch开发文档(一)——安装与运行
查看>>
sql删除多个字段重复数据有主键和没主键解决方法(mysql)
查看>>
焦烈焱_云与移动互联时代的企业应用架构
查看>>
GCRetractableSectionController
查看>>
Litepal中主键id的类型
查看>>
FreeBSD 10.1环境下apache2.4配置ssl实现https
查看>>
基于面向对象(抽象数据类型)风格的kwic实现
查看>>
PHP钩子是什么?
查看>>
Android应用层到Framework到HAL再到驱动层的整个流程分析
查看>>
进度条,颜色选取
查看>>
图解正向代理、反向代理、透明代理
查看>>
Pav Metro Store OpenCart 自适应主题模板 ABC-0215
查看>>
每天一个linux命令(20):find命令之exec
查看>>
数组排列组合
查看>>
Google Java编程风格指南
查看>>
【学习笔记16】文件上传
查看>>
k8s基本概念及入门案例
查看>>