从零开始学java类与对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始学java类与对象相关的知识,希望对你有一定的参考价值。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
类是对象的抽象,对象是类的具体实例。
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类与对象的主要内容,如果未能解决你的问题,请参考以下文章
从零开始的Java开发1-5-2 包装类与基本数据类型常用API基本数据类型与包装类字符串之间的转换包装类的初始值与比较对象常量池