JAVA 类和对象
时间:2021-09-10
本文章向大家介绍JAVA 类和对象,主要包括JAVA 类和对象使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
类和对象
概念
对象:世界万物皆对象
每个对象都会从两个角度描述:
静态
属性:对象所拥有的各种特征.
每个对象的属性所拥有的值.
动态(行为)
方法:对象执行的操作
封装:将属性及方法相结合,共同体现对象的特性.
对象的属性和方法通常被封装在一起
类:具有相同属性和共同行为的一组对象的集合.
对象中抽取属性和行为的共同特征,从而抽象出类
类是一个高度抽象的概念
类是对象的抽象,对象是类的实例
类的定义
举例
public class Cubic
{
//底面长。宽
int a;
int b;
//高
int c;
//下面是方法
//求底面周长
public int length()
{
return 2*(a+b);
}
//求底面面积
public int area()
{
return a*b;
}
//求长方形表面积
public int totalArea()
{
int d=2*(a*b+a*c+b*c);
return d;
}
//求长方体体积
public int volumn()
{
int d=a*b*c;
return d;
}
}
方法中可以嵌套其他方法
例如上面的表面积和体积,可以改成
//求长方形表面积
public int totalArea()
{
//int d=2*(a*b+a*c+b*c);
int d=2*area()+length()*c;
return d;
}
//求长方体体积
public int volumn()
{
//int d=a*b*c;
int area()*c;
return d;
}
用类创建对象
public class Main {
public static void main(String[] args) {
//创建对象
Cubic cubic =new Cubic();
//使用
cubic.a=10;
System.out.println(cubic.a);
System.out.println(cubic.b);
cubic.b=20;
cubic.c=30;
System.out.println(cubic.length());
}
}
}
创建过程:
1.系统加载类的字节码
2.new操作:
- 根据字节码,在堆内存中为该类的成员变量中的实例变量分配内存,并赋默认值;
- 第一次创建类的实例时,分配实例方法的入口地址。
3.将对象的引用传递给变量
优点
1.面向对象程序设计可以模拟现实世界
2.类的封装性,其余人可以直接使用,不用关心具体实现
3.提高代码的重用性
类的成员变量
与局部变量区别
- 作用域和初始值不同.
-
- 成员变量:是类的属性,在类内都有效。(在类内位置随意,即使在语句下方定义也可以)
-
- 局部变量:方法行参,复合语句内部,循环语句内部,判断语句内有效
-
- 成员变量:初始值为0,局部变量:没有初始值
成员变量的引用问题
如果成员变量与局部变量重名(例为a)
局部变量的优先级高,
直接使用 a 默认是使用局部变量
如果想使用成员变量,使用this.a
类变量(静态变量)
类变量由类所拥有
原文地址:https://www.cnblogs.com/kingwz/p/15249294.html
- USB 设备的PID-Product ID,VID-Vendor ID
- Asp.Net4.0/VS2010新变化(3):webform中也可以直接url路由
- IIS7上部署Asp.Net4.0时UrlRouting的若干问题
- As3.0中的反射
- 域名yg.cc以10.2万元的价格结拍,可搭建“摇滚”音乐平台
- 修改 Windows Host 文件工具
- win7下恢复“经典任务栏”/“快速启动栏”,关闭“窗口自动最大化”
- WCF和ASP.NET Web API 接口执行时间监控
- 额的神啊:AS3中Button被disable了,也会触发Click事件!
- [原创]CI持续集成系统环境---部署gerrit环境完整记录
- CentOS设置Mono环境变量
- 分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控
- 从APM角度上看:NoSQL和关系数据库并无不同
- 事故记录-过多进程致使CPU卡死
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释