面向过程与面向对象的区别
面向过程:一个线性的做事方法,一步步来,所有事情自己做面向对象:站在高度上,很多事情让别人代做
(注释:两者相辅相成并不对立)
对象和类的定义
对象:能产生想法的具体的事物(小范围,具体的,万物皆是对象)
类:对对象抽象出来的部分(大范围,抽象的)类有包含:成员变量和成员方法
(注释:现有对象才能产生类)
对象和类的关系
特殊到一般具体到抽象;
类可以看成一类对象的模板,对象可以看见该类的一个具体实例
类是用于描述同一类形的对象的一个抽象的概念,类中定义了这一类对象所应具有的静态和动态属性
构造方法:
修饰符 类名(){}
当类没有任何一个构造器的时候,虚拟机会帮这个类创建一个无参的构造方法,但是如果类拥有任何一种构造方法,虚拟机就不会帮你再创建。
调用类属性和方法
对象名.成员变量
对象名.成员方法
全局变量和局部变量:
全局变量属于整个类,所有方法都可以使用和更改他;局部变量属于方法本身;只有在这个局部变量的方法内部才能使用
当全局变量和局部变量的名字相同的时候,在方法调用的时候,首先使用方法内的局部变量
创建一个对象的方法:new 一个对象
new 关键字调用的是类的构造方法,通过类的构造方法可以产生一个新的对象。调用类的方法需要使用类的对象.方法名(参数列表);
this 关键字 代表对象本身,p.name this == p
当类没有任何一个构造器的时候,虚拟机会帮这个类创建一个无参的构造方法,但是如果类拥有任何一种构造方法,虚拟机就不会帮你再创建。
构造器的作用:产生一个对象的模版。为了按照某种结构制造一个对象;
值传递和引用传递:
值传递:基本数据类型 本身不会发生变化;引用传递:引用数据类型(类(对象),数组,接口(特殊类))会对本身产生变化;
类包含:属性(成员变量)和方法(成员方法),构造方法(特殊方法),代码块,结构体,内部类
内存结构:栈(局部变量,名字)堆(new 的对象(内容))
package com.sxt;
/**
* 创建一个人类
* @author Administrator
*
*/
public class Person {
//属性
String name;//名字
int age;//年龄
String sex;//性别
double height;//身高
double weight;//体重
String idCard;//证件
//构造方法
public Person(String name,int age,String sex,double height,double weight,String idCard){
this.name=name;
this.age=age;
this.sex=sex;
this.height=height;
this.weight=weight;
this.idCard=idCard;
}
//定义方法
public static void eat(){
System.out.println("我在吃饭");
}
public static void doudou(){
System.out.println("我在打豆豆");
}
public static void sleep(){
System.out.println("我在睡觉");
}
public static void main(String[] args) {
/*创建对象
Person xiaolan=new Person();
xiaolan.name="小懒";
xiaolan.age=18;
xiaolan.sex="男";
xiaolan.cs(xiaolan);
System.out.println(xiaolan.sex);
xiaolan.eat();
xiaolan.sleep();
xiaolan.doudou();*/
Person xiuxiu=new Person("栗子", 18, "女", 164, 52.5, "12345678901");
System.out.println(xiuxiu.name+"\t"+xiuxiu.age+"岁\t"+xiuxiu.sex+"\t"+xiuxiu.height+"cm\t"+xiuxiu.weight+"kg\t"+xiuxiu.idCard);
}
public void cs(Person g){
g.sex="女";
}
}