JAVA学习笔记- - - day 2

简介: # 封装(重点)​ 目的:提高数据的安全性,通过封装,可以实现对属性访问权限的控制,同时增加了程序的可维护性。​ 封装: 将属性私有化,使用private关键字修饰属性,这种属性只有当前类才能访问。​ 我们一般给每一个私有属性提供公共public的get和set这种方法供外界来访问我们的私有属性​ public 修饰符的作用范围:private 作用范围protected 的作用范围default 的作用范围:| | 用一个类 | 同一个包

封装(重点)

        目的:提高数据的安全性,通过封装,可以实现对属性访问权限的控制,同时增加了程序的可维护性。

        封装:  将属性私有化,使用private关键字修饰属性,这种属性只有当前类才能访问。

                   我们一般给每一个私有属性提供公共public的get和set这种方法供外界来访问我们的私有属性


public  修饰符的作用范围:

private 作用范围

protected 的作用范围

default 的作用范围:

用一个类 同一个包 不同的包非子类 不同包的子类
private 可以访问 不可以访问 不可以访问 不可以访问
public 可以访问 可以访问 可以访问 可以访问
protected 可以访问 可以访问 不可以访问 可以访问
default 可以访问 可以访问 不可以访问 不可以访问

数组

一维数组(重点)

说明: 数组的索引是从0开始的

语法:

        第一种:  数据类型[]   数组变量名 = new  数据类型[整数];  (整数为数组的长度)

        第二种:  数据类型[]   数组变量名 = {值1,值2,值3};( 数组的长度是根据初始化决定的)

        第三种:  数据类型[]   数组变量名 = new 数组类型[]{值1,值2,值3,值4};  

二维数组

说明:二维数组就是集合套集合

语法:   数据类型   数组变量名 = new  数组类型[整数] [整数];

image-20220912195445836

方法的重载(重点)

定义: 在同一个类中,方法的名字一样,参数列表不一样(包括参数类型)的两个方法是重载关系,跟返回值没有关系。

目的: 为了节约方法的功能命名和提高代码的可读性。

this关键字(重点)

this只能在对象方法内使用(重要)

对于类的对象来说,属性是每个对象都有一份的,是数据隔离的,但是方法是多个对象共享的。不同对象调用这个方法的时候,是用this来区分不同对象的数据,this是可以隐藏的。

构造器(重点)

用于创建对象的方法,固定格式,给对象赋初始值。

构造器本身是一个方法:

         1.没有返回值,也没有void

         2.构造器的方法名必须和类名一致

         3.在方法中定义要初始的参数列表

语法:

         权限修饰符   类名(数据类型 参数名.....){


         }

默认构造器

       权限修饰符   类名(){


         }

有参构造器

       权限修饰符   类名(数据类型 参数名.....){


         }

注意点:

1.如果一个类存在有参数的构造器,那么默认的构造器就会被覆盖,如果想要使用默认的构造器,那么需要显示的定义。

2.同一个类中的构造器可以相互调用,需要通过this()来调用。this()该构造器的第一行。

3.在构造器中调用其他构造器,不会创建对象,只初始化。

static关键字(重点)

属性上(静态属性/变量)

加上static的属性是类属性,静态属性/全局属性

特点:

       1.static修饰的类属性的访问可以通过 :  类名.类属性 还可以通过对象来访问

       2.static修饰的类属性在当前的class文件加载到jvm的时候就被初始化

       3.当jvm销毁了这个类,那么这个类的static属性也销毁

image-20220912203906934

方法上(静态方法)

语法: public static (返回值) 方法名(数据类型 变量,数据类型 变量){

        方法体

       [return 结果]

}

static修饰的方法就是类方法

image-20220912204950091

注意点:

         1.类方法初始化很早,类被jvm加载后,就初始化了类方法。而普通的方法(对象的方法)也加载进入了jvm,但是要等到对象被实例化后,这个方法才能被使用。

   2. 普通方法中访问该属性时,隐藏了this,如果没有实例化,这个this就不存在。

   3. static修饰的方法不能访问没有static修饰的类属性,即类方法不能访问对象非static修饰的属性,也不能调用非static修饰的方法,对象方法(非static修饰的方法)可以调用类方法。

   4. 对象方法可以访问类的所有属性和方法

静态代码块

          语法:   class A{

                      //静态代码块

                       static{

                       }

                        }

           1.静态代码块主要是用于初始化资源

           2.静态代码块在main之前执行

设计模式(重点)

单例

说明:这种模式只产生一个对象(只有一个实例)

应用场景: windows资源管理器,java数据库中的连接池,网站的计数器,一般也是采用单例模式实现,否则难以同步。

步骤:

         1. 私有化构造参数

         2. 定义一个类方法用于获得单例的对象

         3. 在类中提供一个这个类类型的类属性(要用static修饰)

         4. 在类方法中返回实例化的对象

相关文章
|
7月前
|
Java 编译器 开发工具
Java基础学习笔记——idea篇
JDK由JRE(包含JVM和核心类库)和开发工具箱(如javac编译器和java运行工具)组成。Java项目结构包括Project、Module、Package和Class。IDEA快捷键包括:生成main方法(main psvm)、复制代码(Ctrl+D)、删除代码(Ctrl+Y/X)、格式化代码(Ctrl+Alt+L)、重命名(Shift+F6)等。
56 0
|
7月前
|
监控 负载均衡 Dubbo
|
4月前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
|
23天前
|
Java 数据库连接 API
Spring 框架的介绍(Java EE 学习笔记02)
Spring是一个由Rod Johnson开发的轻量级Java SE/EE一站式开源框架,旨在解决Java EE应用中的多种问题。它采用非侵入式设计,通过IoC和AOP技术简化了Java应用的开发流程,降低了组件间的耦合度,支持事务管理和多种框架的无缝集成,极大提升了开发效率和代码质量。Spring 5引入了响应式编程等新特性,进一步增强了框架的功能性和灵活性。
41 0
|
3月前
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(基础篇)
从Java环境的搭建到实际代码的编写,从基本用法的讲解到底层原理的剖析,深度解析Java基础知识。本文是《Java学习路线》专栏的起始文章,旨在提供一套完整的Java学习路线,覆盖Java基础知识、数据库、SSM/SpringBoot等框架、Redis/MQ等中间件、设计模式、架构设计、性能调优、源码解读、核心面试题等全面的知识点,并在未来不断更新和完善,帮助Java从业者在更短的时间内成长为高级开发。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(基础篇)
|
3月前
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
本文是Java基础的进阶篇,对异常、集合、泛型、Java8新特性、I/O流等知识进行深入浅出的介绍,并附有对应的代码示例,重要的地方带有对性能、底层原理、源码的剖析。适合Java初学者。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
|
2月前
|
Java 数据安全/隐私保护
java学习笔记(基础习题)
java学习笔记(基础习题)
43 0
|
2月前
|
Java 程序员 开发工具
java学习笔记
java学习笔记
40 0
|
3月前
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(高级篇)
本文是“Java学习路线”中Java基础知识的高级篇,主要对多线程和反射进行了深入浅出的介绍,在多线程部分,详细介绍了线程的概念、生命周期、多线程的线程安全、线程通信、线程同步,并对synchronized和Lock锁;反射部分对反射的特性、功能、优缺点、适用场景等进行了介绍。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(高级篇)
|
4月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
60 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)