类的格式:

public class 类名{
//一个标准的java描述类:1.私有化成员变量2.为私有化的成员变量提供set/get方法eclipse快捷键:alt+shift+s3.提供有参数和无参数的构造方法4.还需要写一个功能性的方法
//成员变量
//构造方法
//成员方法
}

1.封装
1.1封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
  封装的好处: A:提高了代码的复用性  B:提高安全性。
1.2为了让使用者使用方法来给成员变量赋值,就不能允许它们直接去访问成员变量,java就提供 了一个修饰符关键字:private ,封装加入private后的标准代码:
A:把成员变量private修饰
B:针对每一个成员变量给出getXxx()和setXxx()(注意首字母大写)
 注意:这里的xxx其实是成员变量名称。

2.this关键字
局部变量如果有一个变量和成员变量名称一致,那么优先使用的是局部变量,即就近原则。这样的话,就造成了局部变量隐藏了成员变量。为了解决这种情况,java就提供了一个代表本类对象的关键字:this。
  this这个关键字指代本类中的一个对象,但是具体指代本类中的哪个对象呢?– 谁调用我我指代谁

3.构造:
无参构造(必须),全参构造(最好有)
3.1构造方法
    作用:给对象的数据进行初始化
    格式特点:
      A:方法名和类名相同。
        public Student() {}
      B:没有返回值类型。
        访问修饰符 返回值类型 方法名(…) {…}
      C:没有返回值。
        没有用return带明确的值回来。
        return;
        
 3.2构造方法注意事项
    A:如果你不提供构造方法,系统会给出默认无参构造方法
    B:如果你提供了构造方法,系统将不再提供默认无参构造方法
     a:使用自己给的带参构造;
     b:要么自己再提供一个无参构造,建议:永远自己给出无参构造方法;
     c:构造方法可以重载;

构造方法是一种特殊的方法,具有以下特点。
(1)构造方法的方法名必须与类名相同。
(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。
(4)构造方法不能由编程人员调用,而要系统调用。
(5)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构 造器,这个构造器不执行任何代码。
(6)构造方法可以重载,以参数的个数,类型,或排列顺序区分。

3.3给成员变量初始化的三种方式
    A:成员变量声明时进行初始化;
    B:通过setXxx()方法 ; 
    C:通过带参构造方法;
    实际底层执行顺序:A -> B -> C(可以思考运行原理)

public class Person {//声明成员变量时直接初始化private String name = "tom";public String getName() {return name;}//通过setName()方法初始化public void setName(String name) {this.name = name;}//构造方法内进行初始化public Person(String name) {this.name = name;}public void work(){...}
}

4.访问修饰符

5.代码示例:

package com.jagger.firsttry;public class Student {//成员变量private String name;private int age;private int score;//get+setpublic String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getScore() {return score;}public void setScore(int score) {this.score = score;}//构造方法,无参public Student() {// TODO Auto-generated constructor stub}//构造方法,有参public Student(String name, int age, int score) {this.name = name;this.age = age;this.score = score;}//成员方法public void Select(boolean limit) {name = this.name;age = this.age;score = this.score;if(limit & age > 18 & score >90) {System.out.println(name + "选拔通过" + "\n" + "this地址:" + this);}else {System.out.println(name + "选拔不通过" + "\n" + "this地址:" + this);}}
}
package com.jagger.firsttry;public class HelloWorld {public static void main(String[] args) {Student xm = new Student();Student xh = new Student("xiaohong",20,99);Student xl = new Student("xionglan",19,85);xh.Select(false);System.out.println("xh调用起始地址:"+xh);//验证this谁调用就指向谁xl.Select(true);System.out.println("xl调用起始地址:"+xl);}
}
console 执行结果:
xiaohong选拔不通过
this地址:com.jagger.firsttry.Student@7852e922
xh调用起始地址:com.jagger.firsttry.Student@7852e922
xionglan选拔不通过
this地址:com.jagger.firsttry.Student@4e25154f
xl调用起始地址:com.jagger.firsttry.Student@4e25154f

Java学习-标准描述类的写法相关推荐

  1. Java学习-7.复用类

    复用类 组合语法 组合技术:只需将对象引用置于新类中即可. class WaterSource {private String s;WaterSource() {System.out.println( ...

  2. JAVA学习笔记(类的学习)

    JAVA学习笔记(类的学习) 类声明和类体 构造方法和对象创建 对象的引用和实体 成员变量 方法 方法重载 关键字this 包 import语句 访问权限 对象数组 反编译和文档生成器 JAR文件 1 ...

  3. Java学习记录-3.类的复用

    对类的复用主要有两种方式,组合与继承. 组合 在一个类中使用一个类. 对于这些对象的初始化有四种方式: 1.在定义域处,这样在构造器被调用之前就会被初始化. 2.在构造器内. 3.惰性初始化,既在使用 ...

  4. Java学习笔记1——类和对象

    面向对象 对象:万物皆对象 面向对象 类:模子,属性+方法,类是对象的类型,是具有相同属性和方法的一组对象的集合 对象属性:对象拥有的各种特征,"对象有什么" 对象方法:对象执行的 ...

  5. java学习之fiel类

    今天学习了Java基础之fiel类 构造方法: public fiel(String Pathname) public fiel(String Parent, String Child) public ...

  6. Java学习笔记——Calendar类

    Java中的日期类主要包括:Date类和Calendar类,本文中将对Calendar类进行讲解. 一.Calendar类的简介 Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,只需 ...

  7. Java学习笔记_类和对象

    ·类:是一组相关属性和行为的集合,可以看成是一类事务的模板,使用事物的属性特征和行为特征来描述该类事物. ·属性:该事物的状态信息 ·行为:就是该事物能够做什么 ·对象:一类事物的具体体现,对象是类的 ...

  8. JAVA学习3-抽象类、内部类、数组、Object、System、String、基本包装类型

    21.类之间的关系 is a:继承关系 has a : 关联关系,通常以属性的形式存在 like a:实现关系,通常是类与接口的关系; 22.抽象类与接口的区别 抽象类是半抽象的,接口是完全抽象的: ...

  9. Java学习笔记----File类与IO流

    第五章:File类与IO流 第一节:File类 1.1 概述 java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作 Java把电脑中的文件和文件夹(目录) ...

最新文章

  1. 【HZOI2015】帕秋莉的超级多项式
  2. 使用Windows live Writer 2012发布ChinaUnix博客
  3. 日期代码的js 中将2012年显示成了112年
  4. Java记录-SpringMVC整合Echarts画地图加散点图
  5. 人体轮廓_速写人体轮廓的处理有哪些技法?
  6. 大一计算机基础ppt练习题,计算机基础知识PPT练习题及答案DOC
  7. 关于JAVA输入输出流造成的Runtime线程阻塞问题【新人笔记】
  8. Python编程求100内的所有素数(详解版)
  9. 解决“虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本”的问题。
  10. itest软件测试工具,itest(爱测试)
  11. java满天星星闪烁_满天星空的星星为什么闪烁?
  12. 计算机应用基础制作新春贺卡图片,WORD制作新年贺卡和个人简历大学计算机基础课程设计报告书...
  13. php做一个文章页面,thinkphp教程-文章内容页上一页下一页功能实现
  14. github fork PR 的简单使用
  15. SWT之Text换行
  16. 互联网早报:阿里巴巴淘菜菜发布“本地菜”计划,直连近300个菠菜种植基地
  17. 微信和支付宝又更新了,这几个功能很赞
  18. 01-Spring_快速入门
  19. NIST原子光谱数据库使用说明
  20. 20210303-CSR

热门文章

  1. 想报考pmp(pmp报考费),一定要先经过培训机构吗?
  2. 关于圆周卷积和fft求卷积的一些看法
  3. git fork 远端仓库协作开发
  4. js:按钮绑定多个事件的三种方法(js,DOM,jQuery)
  5. 堆排序Java实现以及使用场景
  6. assertThat详解
  7. 初学者的图片SEO指南 - 为搜索引擎优化图片
  8. 3-2Virsh控制工具
  9. 地理坐标系与投影坐标系的区别以及投影变换与定义投影的区别
  10. Taro小程序组件传值