面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

类是对象的抽象,对象是类的具体实例。

  1.构造一个类,让其拥有属性和方法

public class Employee {

    //属性,私有化属性,并提供方法让其能够通过方法访问
    private String name;
    private int age;
    private double salary;

    private static final int NUMBER=217; //常量

    private static void method1(){

        System.out.println("静态方法");
    }
    static{

        System.out.println("静态块");
    }

    //构造器
    public Employee(String name,int age,double salary){

        this.name=name;
        this.age=age;
        this.salary=salary;
        System.out.println("构造器");
    }

    public void raiseSalary(double multiple){
        this.salary *= multiple;
    }

    public static void main(String[] args) {

        Employee.method1();
    }
}

  类里面的内容加载顺序:

   1、虚拟机在首次加载Java类时,会对静态初始化块、静态成员变量、静态方法进行一次初始化
   2、只有在调用new方法时才会创建类的实例
   3、类实例创建过程:按照父子继承关系进行初始化,首先执行父类的初始化块部分,然后是父类的构造方法;再执行本类继承的子类的初始化块,最后是子类的构造方法
   4、类实例销毁时候,首先销毁子类部分,再销毁父类部分

  2.重载 overloading

  重载为多个方法具有相同的名字不同的参数;其实可以当做多个方法...

public String color(){
        return "red";
    }
public String color(String color){
        return color;
    }

3.public,private,protect ,“默认”的 作用域

    作用域 当前类 同一package 子孙类 其他package

    public       √          √           √            √

    protected √         √            √            ×

    friendly     √         √            ×            ×

    private     √         ×            ×             ×

  4.方法注释

    @param 变量描述; @return 返回描述 @throws 异常描述 @author 作者描述 @version版本描述 @deprecated 过时的

  5.类的设计技巧

    1.一定要让数据私有化

    2.一定要对数据进行初始化

    3.不要在类中使用过多的基本类型

    4.将类里过多的功能拆分出来

    5.类名和方法名应体现出职责

  6.类的继承

public class Employee {

    //属性,私有化属性,并提供方法让其能够通过方法访问
    private String name;
    private int age;
    private double salary;

    private static final int NUMBER=217; //常量

    private static void method1(){

        System.out.println("静态方法");
    }
    static{

        System.out.println("静态块");
    }

    //构造器
    public Employee(String name,int age,double salary){

        this.name=name;
        this.age=age;
        this.salary=salary;
        System.out.println("构造器");
    }

    public void raiseSalary(double multiple){
        this.salary *= multiple;
    }

}
    class Manager extends Employee{

        public Manager(String name, int age, double salary) {
            super(name, age, salary);
        }

}

  如果父类没有不带参数的构造器,那么子类必须重写父类的构造器。子类可以重写父类的方法,也可以添加新方法。相当于对父类进行扩充以适应其他的环境。

  子类只能继承一个父类。可以理解为 IS-A; 子类是父类。接口,可以理解为like-A。像A也可以像B。如果一个类被final修饰的话,将不能继承。例如String类。

  7.抽象类

    抽象类即带有抽象方法的类,用于被继承。抽象类中可以包含具体的方法。

abstract class Person{
        public abstract void eat();
        public void sleep(){

        }
    }

    

从零开始学java(二)类与对象的更多相关文章

  1. 从零开始学 Java - Spring 集成 ActiveMQ 配置(二)

    从上一篇开始说起 上一篇从零开始学 Java - Spring 集成 ActiveMQ 配置(一)文章中讲了我关于消息队列的思考过程,现在这一篇会讲到 ActivMQ 与 Spring 框架的整合配置 ...

  2. 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)

    Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...

  3. 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)

    硬盘和内存的作用是什么 硬盘的作用毫无疑问我们大家都清楚,不就是用来存储数据文件的么?如照片.视频.各种文档或等等,肯定也有你喜欢的某位岛国老师的动作片,这个时候无论我们电脑是否关机重启它们永远在那里 ...

  4. 从零开始学 Java - Spring 集成 ActiveMQ 配置(一)

    你家小区下面有没有快递柜 近两年来,我们收取快递的方式好像变了,变得我们其实并不需要见到快递小哥也能拿到自己的快递了.对,我说的就是类似快递柜.菜鸟驿站这类的代收点的出现,把我们原来快递小哥必须拿着快 ...

  5. 从零开始学 Java - Spring AOP 实现用户权限验证

    每个项目都会有权限管理系统 无论你是一个简单的企业站,还是一个复杂到爆的平台级项目,都会涉及到用户登录.权限管理这些必不可少的业务逻辑.有人说,企业站需要什么权限管理阿?那行吧,你那可能叫静态页面,就 ...

  6. 从零开始学 Java - Spring 一主多从、多主多从 数据库配置

    待会苹果要开发布会 我写完这篇文章就准备去看发布会了,因为我买了好几包瓜子和啤酒.由于苹果的保密做的越来越差劲,该曝光的信息差不多全部曝光了,我们这种熬夜看发布会的只不过是让这些信息更加真实,或者说是 ...

  7. 从零开始学 Java - Spring AOP 实现主从读写分离

    深刻讨论为什么要读写分离? 为了服务器承载更多的用户?提升了网站的响应速度?分摊数据库服务器的压力?就是为了双机热备又不想浪费备份服务器?上面这些回答,我认为都不是错误的,但也都不是完全正确的.「读写 ...

  8. 从零开始学 Java - 我放弃了 .NET ?

    这不是一篇引起战争的文章 毫无疑问,我之前是一名在微软温暖怀抱下干了近三年的 .NET 开发者,为什么要牛(sha)X一样去搞 Java 呢?因为我喜欢 iOS 阿!哈哈,开个玩笑.其实,开始学 Ja ...

  9. 从零开始学 Java - log4j 项目中的详细配置

    你还会用笔来写字么 我是不怎么会了,有时候老是拿起笔之后不知道这个字怎么写,这时候就会拿起手机去打出来:有时候还会写出来这个字之后越看越不像,这时候就开始怀疑自己的能力了:有时候写出来了一大堆字之后, ...

  10. 从零开始学 Java - 搭建 Spring MVC 框架

    没有什么比一个时代的没落更令人伤感的了 整个社会和人都在追求创新.进步.成长,没有人愿意停步不前,一个个老事物慢慢从我们生活中消失掉真的令人那么伤感么?或者说被取代?我想有些是的,但有些东西其实并不是 ...

随机推荐

  1. win10 .net3.5的问题及解决方案

    近日有网友反映在windows10_64位系统电脑上安装Net framework3.5,操作时总失败,怎么办呢?小编下面就介绍win10 64位系统无法安装Net framework3.5的两种解决 ...

  2. 用360清理了一下电脑后发现Eclipse软件无法打开

    今天用360安全卫士清理了一下电脑,然后双击Eclipse软件发现不能打开,弹出以下界面: 解决方法如下: 打开计算机-属性-高级系统设置,修改系统变量里变量名为JAVA_HOME.CLASSPATH ...

  3. 主成分分析、实例及R语言原理实现

    欢迎批评指正! 主成分分析(principal component analysis,PCA) 一.几何的角度理解PCA -- 举例:将原来的三维空间投影到方差最大且线性无关的两个方向(二维空间). ...

  4. 通过crt修改数据库中的存储过程

    mysql -u idc_user -pidc_user123 通过crt修改数据库中的存储过程PRO_RET_HD_TZXW STEP1:在crt中查看数据库中的存储过程PRO_RET_HD_TZX ...

  5. MySql:SELECT 语句(五)正则表达式的使用

    关键字:REGEXP REGEXP 语句形式和 LIKE 语句相似,REGEXP 后面跟正则表达式.如果需要区分大小写,可以在 REGEXP 后加关键字 BINARY. 所有的正则表达式的规则都可以在 ...

  6. promise.then, setTimeout,await执行顺序问题

    promise.then VS setTimeout 在chrome和node环境环境中均输出2, 3, 1, 先输出2没什么好说的,3和1顺序让人有些意外 原因: 有一个事件循环,但是任务队列可以有 ...

  7. Dear Menuhin

    2017-11-26 Sa Nov 11:05 AM @ HOME, TOSBE Nicole assigned us a composition about the Thanksgiving day ...

  8. Fragment传参

    1. 封装基类 /** * Created by chenhaibin * Time 18/1/20 * Email chenhaibin415@163.com * Description:封装代码的 ...

  9. nginx 做数据仓库时,location 404 Not Found,发现找不到要用的数据报:Not Found

    背景:  获得远程机器某个目录下的数据文件 方案:使用Nginx配置 1./home/ftp/www/ 下面有images 文件夹,为了访问images下面文件,配置Nginx如下: location ...

  10. Linux seq_printf输出内容不完整的问题

    Linux seq_printf输出内容不完整的问题 写在前面的话:这是多年前在项目中遇到的问题,作为博客的开篇之作,有不足之处,请各位大侠斧正!谢谢! seq_file接口介绍 有许多种方法能够实现 ...