文章目录
- 面向对象
- 1.定义类:
- 2.创建对象并访问和操作
- 3.类的属性的默认值
- 4.类的初始化--构造方法
- 5.this
- 6.static关键字的使用
- 7.类的成员和成员运行顺序
- 8.访问修饰符
面向对象
面向过程:提出问题–>分解问题–>一 一解决问题
面向对象:OOP(Object Orientedt Programming):主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙一个事物在整个解决问题的步骤中的行为。面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。通过这些概念面向对象的思想得到了具体的体现。
分门别类的思想
类:(class),类别
在Java中,使用class关键字定义类
属性:类的固有特征
行为与动作:函数function(方法 method)
对象:(object),一个类中的具体案例。(实际存在的)
1.定义类:
在Java中,定义类,使用class关键字
访问权限修饰符 class 类名称{
//固有属性,类的固有特征
//访问修饰符 类型 属性名称=属性值;
}
示例:定义一个圆类
public class Circle {
public double radius;
public Circle(){
radius=1;
}
public Circle(double newRadius){
radius=newRadius;
}
public double getArea(){
return radius*radius*Math.PI;
}
public double getPerimeter(){
return 2*radius*Math.PI;
}
public void setRadius(double newRadius){
radius=newRadius;
}
}
2.创建对象并访问和操作
定义类,根据类来创建对象,通过类的构造方法来创建对象,对象名称.属性/方法
类型 对象名称=new 构造函数();
对象名称.属性 //访问对象属性
对象名称.属性=值 //设置对象的属性的值
对象名称.方法 //调用对象的方法
示例:
class TestCircle {
public static void main(String[] args) {
Circle c = new Circle();
System.out.println(c.getArea());
System.out.println(c.getPerimeter());
}
}
3.类的属性的默认值
class Person{
//定义属性
public long id;
public String name;
public int age;
public boolean gender;
public double weight;
public float height;
public byte aa;
public char c;
public short s;
}
在Java中,如果定义类的使用,存在属性,但是没有给属性赋值,Java会给定默认值。重写toString()方法,该方法在打印对象时,会自动调用。
八种基本数据类型默认值
数据类型 | 默认值 |
整型 | 0 |
浮点型 | 0.0 |
char | 空字符 |
boolean | false |
对象 | null |
String | null |
4.类的初始化–构造方法
在Java类中,如果自己没有定义构造函数,系统(JVM)会自动生成一个无参构造,方便我们构建一个属性都为默认值的对象。
如果已经构造了有参构造方法,则系统不会生成无参构造,需自己写无参构造
//无参构造,系统默认生成
访问修饰符 类名(){
}
//有参构造
访问修饰符 类名(String name,int age){
}
5.this
在Java中,存在this关键字,默认会指向当前对象。
作用:初始化属性。
6.static关键字的使用
可以修饰属性,方法、(内部类)类、语法块、导包
static修饰的代码,会提前加载到内存中,并且只有一份,属于该类。因此,静态方法中,无法直接调用非静态函数、属性。
static修饰的属性,方法不属于对象,属于该类,直接使用类名称.属性(方法)来调用。静态属性,直接使用类名称调用
static静态代码块:提前加载到内存中,只执行一次,并且只有一份。
{
//构造代码块
}
static{
//静态代码块
}
7.类的成员和成员运行顺序
属性
//方法
构造方法
静态属性
//静态方法
构造代码块
静态代码块(只会执行一次)
类的成员运行顺序:
属性最先运行
static修饰的属性和静态代码块最先运行(这两者之间看顺序)
之后才是对象属性和构造代码块(这两者之间看顺序)
最后是构造函数。
8.访问修饰符
修饰符 | 作用 |
public | 任何地方都可以正常访问该修饰符修饰的属性和方法 |
protected | 同包、同类、子类 |
default | 同包、同类 |
private | 只能是在当前类 |
注意:class类,只能被public和默认这两种访问修饰符修饰。