Day05_20_Java中类的创建和对象的实例化
类的创建和对象的实例化
类的定义
类属于引用数据类型,java语言中所有的.class都属于引用数据类型
在类体当中,方法体之外定义的变量被称为 成员变量,成员变量没有赋值,系统默认是0;
语法结构:
[修饰符列表] class 类名{ 属性 方法
}
*Eg:学生类 (描述所有学生对象的共同特征)
- 学生对象有哪些状态信息(属性):学号 姓名 性别 年龄 住址...
- 学生对象有哪些动作信息(方法):吃饭 睡觉 学习 玩 唱歌...
- 在类体中描述对象的状态信息(基本信息) 和 动作信息(行为)。 属性通常采用变量的方式来定义,动作采用方法的方式来定义。
- 在类体当中,方法体之外定义的变量又被称为成员变量,成员变量没有赋值,系统默认是 0/null。
- 实例
```
public class Student //定义一个类,类名是Student
{
// 属性 描述的是对象的基本信息
int Sno;
String Name;
boolean Sex;
int Age;
String Address;
//方法 描述的是对象的动作信息
public void study(){
System.out.println("学生在学习");
}
public void sing(){
System.out.println("学生在唱歌");
}
}
对象的实例化
实例化对象的语法
new 类名();
eg:
student s=new student();new 是java语言当中的一个运算符
new 运算符的作用是创建对象,创建的同时在JVM堆内存中开辟新的内存空间
JVM 内存结构
方法区内存:在类加载的时候,class字节码文件被加载到该内存空间当中。
栈内存(局部变量):方法代码片段执行过程中,会给该方法分配内存空间,在栈内存中压栈。
堆内存:new的对象在堆内存中存储。
什么是对象? new运算符在堆内存中开辟的内存空间称为对象
什么是引用?引用一个变量就是在变量中保存了另一个java对象的内存地址。
java语言当中,程序员不能直接操作堆内存。只能通过引用去访问堆内存当中的对象内部的实例变量。
局部变量在栈内存中存储,成员变量中的实例变量在堆内存的java变量内部存储
实例变量是一个对象一份,100个对象100份。
实例变量不能直接通过 类名.变量的方式访问,必须先创建对象,才能访问类下的实例变量。
访问实例变量的语法格式:
1.读取数据:引用.变量名; int stu=s.sno; String name=s.name;
2.修改数据:引用.变量名=值;
Eg:
主类:
public class day02 {
//main方法
public static void main(String[] args) {
//实例化Student对象
Student s=new Student();
//给对象的属性赋值
s.Sno=10;
s.Age=20;
s.Name="jock";
s.Address="天津市西青区啦啦啦啦啦啦啊0201047";
// 获取并输出对象的属性值
int a=s.Sno;
int b=s.Age;
String c=s.Name;
String d=s.Address;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
// 实例化 User类
User u=new User(); //创建USER对象
// 给新创建的User对象赋值,并输出属性值
u.no=110;
u.name="jack";
u.addr=new Address();
u.addr.city="北京";
u.addr.street="通州区永顺镇珠江帝景7号楼2单元1625";
u.addr.zip=100215;
System.out.println(u.name);
System.out.println(u.addr);
System.out.println(u.no);
System.out.println(u.no+" "+u.name+"居住在"+u.addr.city+u.addr.street+" "+u.addr.zip);
// 定义一个Student类
public class Student //定义一个类,类名是Student
{
// 属性 描述的是对象的基本信息
int Sno;
String Name;
boolean Sex;
int Age;
String Address;
//方法 描述的是对象的动作信息
public void study(){
System.out.println("学生在学习");
}
public void sing(){
System.out.println("学生在唱歌");
}
}
// 定义一个 User类
public class User {
int no;// 基本数据类型
String name;//引用数据类型
Address addr;//Address 引用数据类型 addr 是一个实例变量
}
// 定义一个Address类
Address类:
public class Address {
String city;
String street;
int zip;
}
------------恢复内容结束------------
Day05_20_Java中类的创建和对象的实例化的更多相关文章
- Spring学习笔记之 Spring IOC容器(一)之 实例化容器,创建JavaBean对象,控制Bean实例化,setter方式注入,依赖属性的注入,自动装配功能实现自动属性注入
本节主要内容: 1.实例化Spring容器示例 2.利用Spring容器创建JavaBean对象 3.如何控制Bean实例化 4.利用Spring实现bean属性sett ...
- python中类的创建和实例化
python中同样使用关键字class创建一个类,类名称第一个字母大写,可以带括号也可以不带括号: python中实例化类不需要使用关键字new(也没有这个关键字),类的实例化类似函数调用方式: # ...
- 创建java类并实例化类对象
创建java类并实例化类对象例一1.面向对象的编程关注于类的设计2.设计类实际上就是设计类的成员3.基本的类的成员,属性(成员变量)&方法 面向对象思想的落地法则一:1.设计类,并设计类的成员 ...
- java中类的初始化和对象的初始化
静态的属于全局静态区,这个部分独立存在,不管是成员还是块,都是静态的,大家地位相等,先到先得. 然后是成员初始化,这个部分在类的构造函数前初始化,因为编译器(或者设计者)可能认为构造函数调用了这个成员 ...
- java中类的创建及初始化过程
java中类的创建及初始化过程无外乎两种情况,其一为单类的创建及初始化,其二具有继承关系的父子类创建及初始化过程. 首先说简单的,单类的创建及初始化过程.在java中我们都知道绝大部分对象的创 ...
- 通常Struts框架会自动地从action mapping中创建action对象
开发者不必在Spring中去注册action,尽管可以这么去做,通常Struts框架会自动地从action mapping中创建action对象 struts2-spring-plugin-x-x-x ...
- Java反射机制(创建Class对象的三种方式)
1:了解什么是反射机制? 在通常情况下,如果有一个类,可以通过类创建对象:但是反射就是要求通过一个对象找到一个类的名称: 2:在反射操作中,握住一个核心概念: 一切操作都将使用Object完成,类 ...
- Qt Quick 组件和动态创建的对象具体的解释
在<Qt Quick 事件处理之信号与槽>一文中介绍自己定义信号时,举了一个简单的样例.定义了一个颜色选择组件,当用户在组建内点击鼠标时,该组件会发出一个携带颜色值的信号,当时我使用 Co ...
- 5 -- Hibernate的基本用法 --4 1 创建Configuration对象
org.hibernate.cfg.Configuration实例代表了应用程序到SQL数据库的配置信息,Configuration对象提供了一个buildSessionFactory()方法,该方法 ...
随机推荐
- 两个"�"="锟斤拷"?
关于作者:程序猿石头(ID: tangleithu),现任阿里巴巴技术专家,清华学渣,前大疆后端 Leader.欢迎关注,交流和指导! 本文首发于微信公众号,原文链接,转载请全文保留. 以一首七言绝句 ...
- java中是否存在i+1<i?
存在! 首先我们知道int的取值范围是: -2147483648~2147483647,最高位为符号位 2147483647的二进制为:01111111 11111111 11111111 11111 ...
- Vue学习笔记-基于CDN引入方式简单前后端分离项目学习(Vue+Element+Axios)
一 使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7 (Windows x86- ...
- 痞子衡嵌入式:自识别特性(Auto Probe)可以让i.MXRT1060无需FDCB也能从NOR Flash启动
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是自识别特性(Auto Probe)可以让i.MXRT1060无需FDCB也能从NOR Flash启动. 接着上篇文章 <了解i.M ...
- Go的函数
目录 Go的函数 一.函数的定义 1.函数的基本格式 2.函数的参数 2.1 函数传参的特点:copy传值 3.函数的返回值 4.可变长参数 二.函数的类型 1.给函数的类型重命名 三.匿名函数 1. ...
- 微信支付 V3 的 Java 实现 Payment Spring Boot-1.0.7.RELEASE 发布
Payment Spring Boot 是微信支付V3的Java实现,仅仅依赖Spring内置的一些类库.配置简单方便,可以让开发者快速为Spring Boot应用接入微信支付. 功能特性 实现微信支 ...
- DLL劫持学习及复现
0x01 dll简介 在Windows系统中,为了节省内存和实现代码重用,微软在Windows操作系统中实现了一种共享函数库的方式.这就是DLL(Dynamic Link Library),即动态链接 ...
- 漏洞复现-CVE-2018-15473-ssh用户枚举漏洞
0x00 实验环境 攻击机:Win 10 0x01 影响版本 OpenSSH 7.7前存在一个用户名枚举漏洞,通过该漏洞,攻击者可以判断某个用户名是否存在于目标主机 0x02 漏洞复现 针 ...
- celery 与 flask 实现异步任务调度
Flask 定了2中上下文,来实现机遇线程\协程的,wsgi服务的请求(request.session)和存储(g,current_app )过程,通过栈来完成不同线程和协程的上下文切换,在与cele ...
- 推荐一个能让谷歌浏览器变暗色的插件(darkreader)
下载 https://codechina.csdn.net/mirrors/darkreader/darkreader?utm_source=csdn_github_accelerator 安装教程 ...