一、java修饰符和使用场景

修饰符是用来定义类、方法或者变量的访问权限,分为两大类:

  1. 访问修饰符:

    限定类、属性、方法是否可以被程序里其他部分访问和调用。

    private<default<protect<public

  2. 非访问修饰符,用来修饰或者辅助:

    例如static、final、abstract、synchronize等

主要记住:

  • 外部类修饰符:public或者默认

  • 方法、属性修饰符:private、default、protected、public

    • public公开对外部可见

    • protected对包和子类可见

    • private仅对类内部可见

修饰符 当前类 同一包内 不同包中的子类 不同包中的非子类
public Y Y Y Y
protected Y Y Y N
default Y Y N N
private Y N N N

二、JAVA内置的数据类型简介

  • 八种基本数据类型(每个数据都需要从计算机中申请空间来存储数据)

    • byte

      • 8位

      • 最大127,最小-128

      • 节省空间,占用int类型的四分之一

      • 默认值:0

    • short

      • 16位

      • 最大32767,最小-32768

      • int类型的二分之一

      • 默认值:0

    • int

      • 32位

      • 最小-2147483648,最大2147483647

      • 整数默认是int类型

      • 默认值:0

    • long

      • 64位

      • 最小-9223372036854774808,最大9223372036854774807

      • 默认值:0L

    • float

      • 单精度32位

      • 0.0f

    • double

      • 双精度64位

      • 浮点数默认double类型

      • 默认值0.0d

    • boolean

      • 一位

      • true或者false

      • 默认是false

    • char

      • 16位的Unicode字符,两个字节代表一个字符

      • 最小\u0000即0,最大\ufff即65535

    • 类型转换

      • double>float>long>int>short>byte

      • 小转大可以直接转换,而从大到小需要强制转换,会有精度丢失

  • 引用数据类型:Class创建的对象或者数组都是引用数据类型

    • String:字符串对象,也是引用数据类型

三、java类里面的变量类型

  • 类变量(静态变量):

    • 使用static声明的变量,可以直接使用类名.变量名(变量名称一般大写)访问

    • 一个类不管创建了多少个对象,类只拥有类变量的一份拷贝,数值默认为0,布尔值默认值为false,引用类型默认值是null

    • 生命周期

      • 在第一次被访问时创建,在程序结束时销毁

    • 声明public类型,一般这样声明public static final

    • 存储在方法区,和堆栈不一样的一个空间

       package study2day;

      public class Student {
      public static String PREFIX = "我是";

      }

      public static void main(String [] args){ System.out.println(Student.PREFIX);
      }
       
  • 实例变量(属性):

    • 需要使用对象.变量名才可以访问

    • 对象被实例化之后,实例变量的值就跟着确定,可以赋值,也可以默认。

    • 生命周期

      • 在对象创建的时候创建,在对象被销毁的时候销毁

    • 访问修饰符可以修饰实例变量,一般是私有的,private修饰,然后通过方法或者实例进行修改

        private int age;
    private String name;
    public int getAge(){
    return age;
    }
    public void setAge(int age){
    this.age =age;
    }
    public String getName(){
    return name;
    }
    public void setName(String name){
    this.name = name;
    }
  • 局部变量

    • 方法中的变量

    • 声明在方法、构造方法、语句块、形式参数等

    • 生命周期

      • 当它们执行完后,变量会被销毁

    • 访问修饰符不能用于局部变量

    • 局部变量没有初始值,必须初始化后才可以被禁用

 public String introduce(){
String content = PREFIX + name + ",年年龄是" + age;
return content;
}
public static void main(String [] args){
Student student = new Student();
student.setAge(20);
System.out.println(student.getAge());
student.setName("小墨");
System.out.println(student.getName());
System.out.println(student.introduce());
}

结果:

20
小墨
我是小墨,年年龄是20

JAVA基础概念(二)的更多相关文章

  1. java基础-多线程二

    java基础-多线程二 继承thread和实现Runnable的多线程每次都需要经历创建和销毁的过程,频繁的创建和销毁大大影响效率,线程池的诞生就可以很好的解决这一个问题,线程池可以充分的利用线程进行 ...

  2. java 基础知识二 基本类型与运算符

    java  基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...

  3. java基础(二章)

    java基础(二章) 一,变量 1.变量是内存中的一个标识符号,用于存储数据 2.变量命名规则 l  必须以字母.下划线 _ .美元符号 $ 开头 l  变量中,可以包括数字 l  变量中,不能出现特 ...

  4. Java基础十二--多态是成员的特点

    Java基础十二--多态是成员的特点 一.特点 1,成员变量. 编译和运行都参考等号的左边. 覆盖只发生在函数上,和变量没关系. Fu f = new Zi();System.out.println( ...

  5. C#学习基础概念二十五问

    C#学习基础概念二十五问 1.静态变量和非静态变量的区别?2.const 和 static readonly 区别?3.extern 是什么意思?4.abstract 是什么意思?5.internal ...

  6. Java基础概念语法

    Java基础概念语法 注释 单行注释 //行注释说明 多行注释 /* 多行注释说明 */ 文档注释 /** *@author 程序的作者 *@version 源文件的版本 *@param 方法的参数说 ...

  7. JAVA基础(二)—— 常用的类与方法

    JAVA基础(二)-- 常用的类与方法 1 Math类 abs ceil floor 绝对值 大于等于该浮点数的最小整数 小于等于该浮点数的最大整数 max min round 两参数中较大的 两参数 ...

  8. Java实习生常规技术面试题每日十题Java基础(二)

    目录 1. JAVA 的反射机制的原理. 2.静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同? 3.如何将String类型转化成Number类型. 4.什 ...

  9. Java基础系列二:Java泛型

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.泛型概述 1.定 ...

随机推荐

  1. 01 学习数据分析的python库

    网页爬取 1.requests 2.BeautifulSoup 3.Scrapy 科学计算与数据分析 1.scipy 2.numpy 3.pandas 机器学习和深度学习 1.Scikit-learn ...

  2. Vue.js 源码分析(三十二) 总结

    第一次写博客,坚持了一个多月时间,Vue源码分析基本分析完了,回过头也看也漏了一些地方,比如双向绑定里的观察者模式,也可以说是订阅者模式,也就是Vue里的Dep.Watcher等这些函数的作用,网上搜 ...

  3. 禁用software reporter tool.exe 解决CPU高占用率的问题

    或者 或者 C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\SwReporter\36.184.200 下编辑 manifes ...

  4. Disruptor系列(一)— disruptor介绍

    本文翻译自Disruptor在github上的wiki文章Introduction,原文可以看这里. 一.前言 作为程序猿大多数都有对技术的执着,想在这个方面有所提升.对于优秀的事物保持积极学习的心态 ...

  5. .NET使用本地outlook客户端发送邮件

    1.添加Microsoft.Office.Interop.Outlook引用 2.封装发送邮件方法 using System; using System.Configuration; using Sy ...

  6. Log4Net记录日志(mvc)

    转自:http://blog.csdn.net/zhoufoxcn/article/details/2220533 感谢:柄棋先生 第一步:下载Log4Net 下载地址:http://logging. ...

  7. Python基础23(习惯)

    自己写的大段代码,注释分为两种: 一种 # 顶格写,为后注释," Ctrl+/ " 一种为边写边注释

  8. springmvc在使用@ModelAttribute注解获取Request和Response会产生线程并发不安全问题(转)

    springmvc在获取Request和Response有很多方式:具体请看:https://www.cnblogs.com/wade-luffy/p/8867144.html 产生线程问题的代码如下 ...

  9. 转 echarts 的使用时遇到的坑 初始化和销毁,亲测有效!

    纵观ECharts图表实例化的API,主要有一下几个相关的实例化方法: 1.setOption(Object option,{boolean = true} notMerge) 参数: 1).Obje ...

  10. Scrum 冲刺第五篇

    我们是这次稳了队,队员分别是温治乾.莫少政.黄思扬.余泽端.江海灵 一.会议 1.1  29号站立式会议照片: 1.2  昨天已完成的事情 团队成员 昨日计划完成的工作: 黄思扬 活动管理模块(前端) ...