属性和变量的区别

变量必须要有初始值; 属性可以没有初始值;
变量的范围只在当前大括号内有效; 属性是对象在哪里使用就在哪里有效;
属性的作用范围要比变量的大一些

属性和变量

public class study01 {
public static void main(String[] args) {
// 这是一个变量
String name ="王五";
User u1 = new User();
}
}
class User{
// 这是一个属性
private String User;
}
字符串是引用类型;引用类型的默认值是null
class User{
// 这是一个属性
private String User;
User(){
System.out.println(User); // 输出null
}
}

java中使用 final 修饰可以让数据初始化后不被修改

final可以修饰变量;变量的值一旦初始化后就无法被修改

final可以修饰属性,那么JVM无法自动进行初始化,需要自己进行初始化

构造函数结合final初始化属性

package studyDemo9yue;
public class study01 {
public static void main(String[] args) {
User u1 = new User("张三");
}
}
class User{
// 这是一个属性; user在初始化后就不能被修改了
final String user;
public User(String user){
// this.user 表示的是属性; this表示当前这个对象
this.user = user;
}
}

一般情况下,将final修饰的变量称之为常量,或者叫不可变量

final可以修饰方法,这个方法不能够被子类重写。 但是final不可以修饰构造方法

final可以修饰类,这个类就没有子类了。

final可以修饰方法,修饰属性,修饰变量,也可以修饰类

final可以修饰方法中的参数,一旦修饰,参数就无法被修改

不完整的类就是抽象类; 因为类不完整所以无法直接构建对象

abstract class 类名

抽象方法:只有声明,没有实现的方法叫做抽象方法

抽象方法的基本语法: abstract 返回值类型 方法名(参数)
abstract 修饰的方法是抽象方法

如果一个类中含有抽象方法,那么这个类就是抽象类;

如果一个类是抽象类,它的方法不一定是抽象方法;

抽象类无法直接构建对象,但是可以通过子类间接构建对象。

如果抽象类中含有抽象方法,那么子类继承抽象类,需要重写抽象方法,将方法补充完整;

public class study01 {
public static void main(String[] args) {
Person22 u1 = new Person22();
u1.eat();
}
} //这是一个抽象类
abstract class Person21 {
// 这里是一个抽象方法
public abstract void eat();
} //如果抽象类中含有抽象方法,那么子类继承抽象类,需要重写抽象方法
class Person22 extends Person21{
// 重写抽象方法
public void eat() {
System.out.println("说话");
}
}

abstract抽象类是不能和关键字 final一起使用的

java中属性和变量的区别与final和抽象类的更多相关文章

  1. Java中标识符和变量的区别

    1.标识符 在JAVA的组成部分中包括了对包.类.方法.变量等的起名,这些名字是要有一定的规则的: 标识符可以包含数字.字母.$._,但是不能以数字开头: 关键字不能用作标识符: 标识符是大小写敏感的 ...

  2. Java中this与super的区别【6】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激.请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ ...

  3. java中extends与implements的区别

    学了java很久了,久不用之后给同学解决一个java问题的时候,就卡在这个标题上了. 下面是java中extends与implements的区别: 1. 在类的声明中,通过关键字extends来创建一 ...

  4. Java中Comparable和Comparator接口区别分析

    Java中Comparable和Comparator接口区别分析 来源:码农网 | 时间:2015-03-16 10:25:20 | 阅读数:8902 [导读] 本文要来详细分析一下Java中Comp ...

  5. Java中堆和栈的区别(转)

    栈与堆都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆.      Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new. ...

  6. Java中Long与long的区别(转)

    Java中Long与long的区别(转) [本文转载自:http://www.cnblogs.com/bluestorm/archive/2012/04/22/2464739.html] 转载请联系原 ...

  7. java中堆和堆栈的区别

    java中堆和堆栈的区别(一) 1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. 2. 栈的优势是,存取 ...

  8. java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.println和System.err.println的区别 Java重定向System.out和System.err

    本文关键词: java 标准输出与标准错误    out与 err 区别 用法 联系  java中的out与err区别  System.out和System.err的区别 System.out.pri ...

  9. Java学习笔记十五:Java中的成员变量和局部变量

    Java中的成员变量和局部变量 一:成员变量: 成员变量在类中定义,用来描述对象将要有什么 成员变量可以被本类的方法使用,也可以被其他类的方法使用,成员变量的作用域在整个类内部都是可见的 二:局部变量 ...

  10. Java中Set Map List 的区别

    java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list   --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...

随机推荐

  1. NZOJ 模拟赛4

    T1 数字游戏 大家列队后,都觉得累了,于是一起坐到院子中的草地上休息.这时Anna突然想跟她的最大竞争对手Cici玩一个数字游戏,她要你编写程序帮助她取得胜利. 第i次游戏初始时有一个整数N_i(1 ...

  2. 2、oracle数据库基本概念

    基本概念 一.数据库启动.监听启动.判断数据库是否可以连接的过程.感知实例的存在 虚拟机ip地址:192.168.56.12 这里需要修改一个地方:就是把本地主机Host-Only的ip地址修改为:1 ...

  3. Converter Tutorial

    Setting up a simple example This is the most basic converter... let's start with a simple Person: pa ...

  4. Elasticsearch之性能优化

    elasticsearch 使用有时候会出现CPU飙升,内存爆满情况,需要进行一些优化设置. 1.  一定要用es自带id生产策略 2. 设置副本数量为0,写入完可恢复 put  localhost: ...

  5. 图片渲染 API:极速生成电商、社媒、营销、横幅、证书等图片!

    不知道还有没有同学还记得,当时自己开发智能体时,有一个自动生成证书图片的功能,既方便又实用.今天我们就来带大家回顾一下,如何快速生成图片,并且最重要的是,完全无需通过 HTTP 调用,极大提高了操作的 ...

  6. TypeScript 总结

    js 类型分为两种:基本数据类型和复杂数据类型 基本数据类型主要有:number.string.boolean.null.undefined.symbo(es6新增).BigInt(es10新增) t ...

  7. Dapr-3: 从 20000 英尺之上俯瞰 Dapr

    第 3 章 从 20000 英尺之上俯瞰 Dapr Dapr at 20,000 feet | Microsoft Docs 在第 1 章中,我们讨论了分布式微服务应用的吸引力.但是,我们也指出了它会 ...

  8. ajax请求与前后端交互的数据编码格式

    目录 一.Ajax AJAX简介 应用场景 AJAX的优点 语法实现 二.数据编码格式(Content-Type) 写在前面 form表单 几种数据编码格式介绍 三.ajax携带文件数据 四.ajax ...

  9. 【微软】微软程序注册(zfile自建API)

    Zfile支持设置自己的回调地址,怎么设置呢? 参考:https://docs.zfile.vip/advanced/onedrive-api/ 上面文档写的很清楚了,我提醒两点 1.进入 https ...

  10. apache kylin的一些注意事项(解决kylin报错Storage schema reading not supported)

    1.目前我所使用的kylin版本为2.6.2,有时在完成一次构建后会出现fail to locate kylin.properties的异常,如图所示 经排查,定位到kylin源码中的 org.apa ...