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

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

  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. Python第3天

    字符串的魔法: expandtabs 可用来制表 当前输入是否为数字:isdecimal 最低级 isdigit 支持特殊数字 isnumeric 支持中文 标识符 isidentifier 是否存在 ...

  2. jpa @RepositoryRestResource

    依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr ...

  3. django settings多环境配置

    通常我们会把本地.线上的配置拆分,django不同环境的配置可如下: 1.在settings.py同级目录添加settings文件夹 2.把settings.py移到settings文件夹内,并重命名 ...

  4. EF_简单的增删改查

    EF分为三种code_first,model_first,dabase_first这三种模式,网上的例子有好多,但是用了之后感觉实际中都不是这么用的,此处记录写下来日后用的着了可以快速应用,记录如下: ...

  5. Spring.xml中配置注解context:annotation-config和context:component-scan简述

    XML中context:annotation-config和context:component-scan简述 <context:annotation-config/> 中文意思:<上 ...

  6. 用word发布CSDN文章

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  7. spring boot 2 统一异常处理

    spring mvc 针对controller层异常统一处理非常简单,使用 @RestControllerAdvice 或 @RestControllerAdvice 注解就可以轻@RestContr ...

  8. python day11 函数(第三篇)

    2019.4.11 S21 day11笔记总结 1. 函数小高级 ( 5* ) 1 函数名可以当作变量来使用 def func(): print(123) v1 = func # func代表函数的地 ...

  9. css第三天

    三 1.标准模式与怪异模式(针对盒子模型)与边框,填充,边界,有关 标准模式(默认):元素的总宽度 = 盒子的宽度 + 左右填充宽度 + 左右边框宽度元素的总高度 = 盒子的高度 + 上下填充高度 + ...

  10. 微信小程序-遍历列表

    #index.js data: { "messg":"helloworld1111", "items":[ {"name" ...