[14-9]面向对象-final关键字 /* 继承的弊端,打破封装性. 不让其他类继承该类,就不会有重写. 怎么能实现呢?通过Java中的一个关键子来实现,final(最终化). [final关键字] 是一个修饰符,可以修饰类,方法,变量(成员变量,局部变量,静态变量). [特点] 1,final修饰的类是一个最终类,不能派生子类. 如果类中出现部分可以重写,部分不可以,怎么办?只要让指定的方法最终化就可以了. 2,final修饰的方法是最终方法,不可以重写. 3,final修饰的变量是一个常量…
supe主要是调用父类中被重写的方法及属性. 用下列代码那说明: package cn.hcf.TestSuper; public class TestSuper { public static void main(String[] args){ Student stu = new Student(); stu.task(); } } class Person{ int ID; void task(){ ID = 100; System.out.println("工作"); } } c…
package package主要用于管理类,在java中同一个包下不能有相同的类名,可有时项目总会出现很多同名的类,这时就需要通过包来管理类.不同的包下可以有相同的类名. 包就有点类似于文件夹,不同文件夹中可以有相同的文件名,一个文件夹下不能有同名的文件. 包的命名规则一般是域名倒着写,后面再加具体项目名称. 例如京东的就是 cn.jd.123 例如下面位于包cn.hcf.pro3下的TestExtends.java文件和位于包cn.hcf.TestThis包下的TestPackage.jav…
一.为什么要用synchronized关键字 首先多线程中多个线程运行面临共享数据同步的问题. 多线程正常使用共享数据时需要经过以下步骤: 1.线程A从共享数据区中复制出数据副本,然后处理. 2.线程A将处理好的数据副本写入共享数据区. 3.线程B从共享数据区中复制出数据副本. 如此循环,直到线程结束. 假如线程A从共享数据区中复制出数据副本然后处理,在还没有将更新的数据放入主内存时,线程B来到主内存读取了未更新的数据,这样就出问题了. 这就是所谓的脏读,这类问题称为多线程的并发问题. 举个具体…
static属于类的,不属于任何一个对象的 static关键字的应用场景: 1.静态代码块:在类下用static修饰的代码块 static{ 代码: } 只能执行一次,是在第一次使用类之前执行 类加载时执行 静态属性也是类加载时开辟空间 可以利用静态代码块,把这个类使用之前需要的准备工作放到静态代码块中 2.static修饰属性: 不再属于对象的,而是属于这个类 当程序运行后,第一使用某个类时,JVM会加载这个类到内存, 程序运行过程中,一个类只加载一次,所以静态属性只有一份 在类的外部使用静态…
一.this关键字 1.代表当前类的对象 2.通过” . ”调用成员属性和成员方法 3.通过this可以区分成员属性和参数 参数名和属性名相同的情况,默认是参数名 二.非静态成员属性和静态成员属性的区别 非静态通过“对象.属性“的方式调用 静态通过“类名.属性“的方式调用 非静态属性每个对象各有一份,静态属性被对象之间共享,属于类 三.类的加载顺序 创建对象时: 1.首先加载静态资源 a) 静态代码块 b) 静态成员属性 静态资源只会加载一次,并且按照从上到下的顺序加载 2.加载普通代码块和成员…
Java中的类和对象 一:什么是对象: 总的来说就是"万物皆对象",客观存在的事物皆为对象.是计算机所关注的具体信息. 对象(object)是一件事.一个物体.一个名词,或可以获得的东西,可以想象是有自己的标识的任何东西.对象是类的实例化.一些对象是活的,一些对象不是.比如这个人.这间房子.这张信封.这株植物.这件雨伞. 概括来说就是:万物皆对象. 二:什么是面向对象: 面向对象的字面意思就是面朝着对对象,就是人关注着对象 把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对…
static关键字 1.static修饰变量也称静态变量,静态变量存放在静态区被该类的所有对象共享. 例如,定义了一个类class User{static Sring city = "a城"},将类中的一个city属性定义为静态变量.我们创建一个对象use1,然后可以通过user1.city = "b城"修改静态区里面User类的信息.User类中city的初始值就发生了改变,变成了b城.我们再新建一个对象use2,打印user2,会发现user2.city变成了b…
this关键字主要有三个作用 1.调用本类中的属性. public class TextThis { public static void main(String[] args){ Person p1 = new Person(); p1.getInfo(); } } class Person{ String name; int age; public Person(String n, int a){ name = n; age = a; } public String getInfo(){ S…
最终的,最后的 可以修饰:变量.方法.类 (1) 修饰变量 不可改变,即常量,只能赋值一次,赋值之后不可改变 a. 修饰属性:private final int num; 要求属性要显式赋值 通常在属性中,final和static一起使用,表示静态常量:private static final int num; 静态常量的命名规则:每个字母都大写,多个单词之间用下划线分割 b. 修饰局部变量:final int count: 只能赋值一次,二次报错 形参在调用时赋值,所以方法内不能在改变 (2)…