Java 学习:对象和类
对象和类
从认识的角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象。
从代码运行角度考虑是先有类后又对象。类是对象的模板。
对象:对象是类的一个实例,有状态和行为。
类:类是一个模板,它描述一类对象的行为和状态。
下图中男孩(boy)、女孩(girl)、为类(class),而具体的每个人为该类的对象(object):
通过上图可以定义一个Java类:
/*
定义名为 Boy 的类,该类包含两个属性和两个行为
*/
public class Boy{
String name;//定义了名为 name 的 String类型属性
int age;//定义了名为 age 的 int类型属性
void run(){//定义了名为run的行为(方法)
}
void walk(){//定义了名为walk的行为(方法)
}
}
一个类可以包含一下类型变量:
- 局部变量:在方法、构造方法或者语句块中定义的变量,变量声明和初始化都是在方法中,方法结束后变量就会自动销毁。
- 成员变量:成员变量是定义在类中,方法体之外的变量,这种变量在创建对象的时候实例化,成员变量可以被类中方法、构造方法和特定类的语句块访问。
- 类变量:类变量也定义在类中,方法体之外,但必须是static修饰符修饰的变量。
一个类可以拥有多个方法,在上面的例子中:run()、walk()都是Boy类的方法。
构造方法:每个类都有构造方法。如果没有显示的为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。
在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
下面示例,为上面的Boy类定义构造方法:
public class Boy{
String name;
int age;
void run(){
}
void walk(){
}
public Boy(){
//这是最简单的构造方法
}
public Boy(String name){
//这个构造方法仅有一个参数:name
System.out.println("我的名字是:" + name)
}
}
创建对象:
对象是根据类创建的。在Java中,使用关键字 new 来创建一个新的对象。创建对象需要一下三步:
- 声明:声明一个对象,包括对象名称和对象类型。
- 实例化:使用关键字 new 来创建一个对象。
- 初始化:使用 new 创建对象时,会调用构造方法初始化对象。
下面是一个创建对象的例子:
public class A{
public A(String name){
//这是个只有一个参数的构造方法
System.out.println("我的名字是:" + name);
}
public static void main(String[] args){
A myA = new A("type(光)");//这里用关键字 new 创建对象
}
}
编译并运行上面代码,会打印一下结果:
我的名字是:type(光)
学习笔记:
为什么Java文件中只能含有一个public类?
Java程序是从一个 public 类的 main 方法开始执行的,就像 C 程序是从 main() 函数开始执行一样。只能有一个 public 类是
为了给类装载器提供方便。一个 public 类只能定义在以它的类名为文件名的文件中。
每个编译单元(文件)都有一个 public 类。因为每个编译单元都只能有一个公共接口,用 public 类来表现。该接口可以与文件
名相同(严格区分大小写)。当然一个编译单元内也可以没有 public 类。
类变量类型
public class A(){
int age;//成员变量
public static void main(String[] args){
}
}
public class A(){
static int age;//类变量
public static void main(String[] args){
}
}
public class A(){
public static void main(String[] args){
int age;//局部变量
}
}
类的构造方法
- 构造方法的名字和类相同,可以有多个构造方法,并且没有返回值。
- 构造方法主要用于为类的对象定义初始化状态。
- 不能直接调用构造方法,必须通过关键字 new 来自动调用,从而创建类的实例
- Java的类都要求有构造方法,如果我们没有自己定义构造方法,Java编译器会默认提供一个无参数的构造方法。
new 关键字的作用
- 为对象分配内存空间。
- 引起对象构造方法的调用
- 为对象返回一个引用。
Java 学习:对象和类的更多相关文章
- Java学习——对象和类
1. 入门例子 package jihite; public class Dog{ int dogage; public Dog(String name){ System.out.println(&q ...
- Java学习笔记之---类和对象
Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态 例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...
- Java学习:Properties类
Java学习:Properties类 学习目标 认识properties文件,理解其含义,会正确创建properties文件. 会使用java.util.Properties类来操作propertie ...
- Java学习:File类
Java学习:File类 File类的概述 重点:记住这三个单词 绝对路径和相对路径 File类的构造方法 File类判断功能的方法 File类创建删除功能的方法 File类获取(文件夹)目录和文件夹 ...
- java学习一目了然——File类文件处理
java学习一目了然--File类文件处理 File类(java.io.File) 构造函数: File(String path) File(String parent,String child) F ...
- Java学习笔记——File类之文件管理和读写操作、下载图片
Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...
- Java常见对象Object类中的个别方法
Java常见对象Object类 public int hashCode() : 返回该对象的哈希码值. 注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值.你可以理解成 ...
- 快乐编程大本营【java语言训练班】 6课:用java的对象和类编程
快乐编程大本营[java语言训练班] 6课:用java的对象和类编程 第1节. 什么是对象和类 第2节. 对象的属性和方法 第3节. 类的继承 第4节. 使用举例:创建类,定义方法,定义属性 第5节. ...
- Java的对象与类,继承
Java的对象与类,继承 题目1.Java类的建立与使用 设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名.当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的 ...
- 你真的了解JAVA中对象和类、this、super和static关键字吗
作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功.JAVA底层.面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 目录 Java对象究竟是什么? 创建对象的过程 ...
随机推荐
- linux 之awk--格式化文本信息
https://www.cnblogs.com/xudong-bupt/p/3721210.html awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常 ...
- Linux系统进入redis并查询值
1.进入redisredis-cli -h ip -p port2.查看具体信息info 3.得到redis中存储的所有key值KEYS *4.获取指定key值的value值get "key ...
- Verilog function的使用
function的用法 function的标准写法如下: function <返回值的类型或是范围> (函数名): <端口说明语句> //input xxx <变量类 ...
- SpringBoot 默认json解析器详解和字段序列化自定义
前言 在我们开发项目API接口的时候,一些没有数据的字段会默认返回NULL,数字类型也会是NULL,这个时候前端希望字符串能够统一返回空字符,数字默认返回0,那我们就需要自定义json序列化处理 Sp ...
- SpringMVC 源码解析笔记
作者笔记仓库:https://github.com/seazean/javanotes 欢迎各位关注我的笔记仓库,clone 仓库到本地后使用 Typora 阅读效果更好. 一.调度函数 请求进入原生 ...
- DNS服务器(一)正向解析
一.DNS简介 在日常生活中人们习惯便用域名访问服务器,但机器间互相只认IP地址,域名与1P地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应一个ip地址,它们之间的转换工 ...
- Vulhub-DC-3靶场
Vulhub-DC-3靶场 前言 今天把DC-3的靶场打了一遍,可以说这个靶场用到的思路是非常经典的,从信息搜集到漏洞利用包括内核提权.最最重要的是为了下载它的提权EXP,我它喵还花了一块二买了个CS ...
- HDFS(Hadoop Distributed File System )概述
目录 一.HDFS概述 二.HDFS特点 三.HDFS集群组成:主从架构---一个主节点,多个从节点 1. NameNode(名称节点 / 主节点)----- HDFS集群的管理者 2. DataNo ...
- XSS挑战20关
第一关: 没有过滤,直接构造payload过关: http://127.0.0.1/xssgame/level1.php?name=test%3Cscript%3Ealert%28111%29%3C/ ...
- DVWA-全等级跨站请求伪造
DVWA简介 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法 ...