一、面向对象和面向过程的总结
     1、都是解决问题的思维方式,都是代码组织的方式。
  2、解决简单问题可以使用面向过程
  3、解决复杂问题:宏观上使用面向对象把握,微观处理上仍然是面向过程。
面向对象思考方式
遇到复杂问题,先从问题中找名词,然后确立这些名词哪些可以作为类,再根据问题需求确定的类的属性和方法,确定类之间的关系。
面向对象
 1.面向对象具有三大特征:封装性、继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能。所以面向对象优势更明显。
  2.一个经典的比喻:面向对象是盖浇饭、面向过程是蛋炒饭。盖浇饭的好处就是“菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是“可维护性”比较好,“饭” 和“菜”的耦合度比较低。
对象  
1.对象说白了也是一种数据结构(对数据的管理模式),将数据和数据的行为放到了一起。
  2.在内存上,对象就是一个内存块,存放了相关的数据集合!
  3.对象的本质就一种数据的组织方式!
总结
  1.对象是具体的事物;类是对对象的抽象;
  2.类可以看成一类对象的模板,对象可以看成该类的一个具体实例。
  3.类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共同的属性、方法。
对于一个类来说,一般有三种常见的成员:属性field、方法method、构造器constructor。这三种成员都可以定义零个或多个。
1、第一个类的定义
类的三种常见的成员:属性field、方法method、构造器constructor。这三种成员都可以定义零个或多个。

public class Stu {
	//成员属性 field
	String name;
	int age;
	int id;
	public static void main(String[] args) {
		Stu stu=new Stu();
		stu.name="张三";
		stu.age=18;
		stu.id=1;
		System.out.println("大家好!我叫:"+stu.name+"\t"+"今年:"
		+stu.age+"岁"+"\n"+"学号 :"+stu.id);
	}
//构造函数
	 Stu(){
			
		}
}

2、属性

属性定义格式:

[修饰符] 属性类型 属性名 = [默认值] ;

属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。

在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。

java T获取真正的对象_java


3、语句块

语句块(有时叫做复合语句),是用花括号扩起的任意数量的简单Java语句。块确定了局部变量的作用域。块中的程序代码,作为一个整体,是要被一起执行的。块可以被嵌套在另一个块中,但是不能在两个嵌套的块内声明同名的变量。语句块可以使用外部的变量,而外部不能使用语句块中定义的变量,因为语句块中定义的变量作用域只限于语句块。

public static void main(String[] args) {
		int a;
		int b;
		{
			//int a;//编译错误,不能重复定义变量a
			int k;
		}
		//k=10;//变量k的作用域到此为止
	}

4、方法
方法用于定义该类或该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。可以理解为是一系列语句的集合,但必须存在于类中。方法的命名也要标识符的名称规则。
方法定义格式:

[修饰符] 返回值类型 方法名 (参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}

修饰符:可选,定义了方法的可见度,public,private,protected。

返回值类型:必须,方法返回值的数据类型。

方法名:必须,方法的名称,调用者通过这个名称进行调用。

参数类型:可选,参数的数据类型,调用者必须传入该数据类型的值。方法可不包含参数。

方法体:可选,但一般不为空,是该方法逻辑的实现,定义了该方法的功能。

java T获取真正的对象_java T获取真正的对象_02


优点

  • 使程序变得更简短而清晰。
  • 有利于程序维护。
  • 可以提高程序开发的效率。
  • 提高了代码的重用性。
    构造方法
// 一个简单的构造函数
class MyClass {
   int x;
   
   // 以下是构造函数
   MyClass() {
      x = 10;
   }
}

一个典型类的定义

public class StudentCp {
	//field 成员属性
	int id;
	String naem;
	int age;
	Computer comp;
	public static void main(String[] args) {
		StudentCp stu1=new StudentCp();
		stu1.naem="张三";
		Computer comp1=new Computer();
		stu1.comp=comp1;
		stu1.study();
	}
void study() {
	System.out.println("我正在学习 使用我的电脑,"+comp.drand);
}
	public  StudentCp() {
		System.out.println("构造方法");
	}
}
class Computer{
	String drand="戴尔";//品牌
}

4、方法重载(Overload)

// 方法一
public void accept(String param) {
     // 方法实现
}

// 方法二
public void accept(int param) {
     // 方法实现
}

方法一和方法二已经构成重载
构成重载必须满足的条件
     1.函数名/方法名相同
     2.参数个数不同或者参数类型不同
     3.函数重载和返回值类型无关