欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

类和对象知识要点总结

程序员文章站 2022-07-13 22:23:16
...

类和对象

C:面向过程
JAVA/C++:面向对象

何为过程?何为对象?何为类?

例如:将一个大象放进冰箱分为三步:
面向过程:1.打开冰箱。2.放入大象。3.关闭冰箱;
面向对象:打开冰箱,储存,关闭都是对冰箱的操作,冰箱的行为。此时冰箱就是一个对象,所以只要把冰箱所具备的功能都定义于冰箱上进行操作就是面向对象的思想。
:类相当于对象的模子,对象就是类的实例化。

类的实例化(产生对象)

/*
创建类:class 类名{
类的属性,方法
}
*/
class Dog{		
	int age;//属性(字段)
	String name;//属性
	//方法
	public void eat{
		System.out.println("吃狗粮")}
}
//实例化对象
public class Text{
	public static void main(String[] args){
		Dog dog1 = new Dog();
		dog.name = "高琼";	 
	}
}

注:实例成员未初始化默认值:
引用类型:null
基本类型:所对应的默认值0;char:\u000 boolean:false

static

static(静态的)的作用:
1.修饰属性;
2.修饰方法;
3.修饰类;
4.修饰代码块;

修饰属性

//修饰属性
class Dog{  
 static int age;//属性(字段)
}

注:被static修饰的属性不依赖于对象,可直接通过类调用,如:

Dog dog = new Dog();
//dog1.age = 10;//error
Dog.age = 10;//ture

修饰方法


class Dog{ 
	static int age = 10;
	String name = "二哈"//修饰方法
	public static void eat{
	  System.out.println("吃狗粮")}
}

注1:static修饰的方法中不可调用非静态成员,但可修改静态成员,例:

public static void eat{	
	System.out.println("吃狗粮")//name = "高琼";//error
	age = 18;//ture
}

注2:被static修饰的方法不依赖于对象,可直接通过类调用,如:

Dog dog = new Dog();
//dog1.eat();//error
Dog.eat();//ture

修饰类

//main方法必须为static,main是程序的入口,必须首先存在它程序才能跑起来
public static void main(String[] args){

}

修饰代码块

注:静态代码块一般用于初始化静态成员属性;且不能访问非静态数据成员;

static {
	//name = "高琼"//error
	age = 18//ture
	System.out.println("这是静态代码块");
}

private封装,get、set方法,this关键词

注:被private修饰的成员属性不能被实例对象直接调用,但可通过get、set方法进行调用

private,get、set方法

class Dog {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
 }
 public class TestDemo1 {
 	public static void main1(String[] args) {
 		Dog dog = new Dog();
 		//dog.name = "高琼";//error
 		dog.setName("高琼");//ture
 		System.out.println(dog.getName);//ture
 	}
 }

this的用法

1.引用当前对象成员变量
2.引用当前对象方法
注:this关键词表示当前对象的引用;而非当前对象;

public void setName(String name) {
        this.name = name;
        //this.name表示当前对象name的引用
}
{
	this("高琼");
}

/*
this.name表示当前对象name的引用,而非当前对象,原因如下:
	对象的产生有两个条件:
		1.为对象产生内存;
		2.调用合适的构造函数(方法)
*/	

补充

toString方法

当我们想打印类中的成员属性时,可以用show()方法,如果想通过打印类名实现,直接打印会是哈希值,原因是使用object的toString方法,这时可以将show()方法进行重写来实现;

//show()方法
//public void show(){
//	System.out.println("name:"+name);
//}
//重写,快捷键AIT+f12(inseart)
public String toString(){
	return"Person{"+"name='" + name + '\''+",",age=" + age+'}';
}

匿名对象

//通过匿名对象调用方法
new Dog("高琼",3).show()
//执行结果
//name:高琼 age:3

类和对象在JVM中的储存

类和对象知识要点总结

相关标签: 类和对象