Java的类与面向对象

1.面向对象

面向过程:我应该干什么 重在过程 

面向对象: 找谁干什么  重在对象

例子:

挑选一个电脑(台式)

 1.挑一个CPU

 2.挑一个主板

 3.挑一个显卡

 4.挑一个显示器

面向对象的好处:

1.将复杂的事情简单化

2.从事务的执行者转化为指挥者

3.更贴近人的思维(懒人思维)


2.类和对象

 

Java中 最基本的单位 就是类

 类:抽象事物的描述(模板)

 对象:用类创建出来的就是对象(具体的事物)

  创建一个类 : 关键词class 类名()

学生类测试

//类名 对象名=初值

Student stu=new Student();

//使用 对象名.属性名  进行赋值和取值

stu.name="it";

stu.age=22;

//调用成员方法 对象名.方法名()

stu.eat();

//哪个对象调用该方法 打印那个对象方法 属性

stu.sayHi();

//成员方法

public void eat() {

System.out.println("吃");

//介绍一下自己的方法

public void sayHi() {

 System.out.println("姓名:"+name);


3.成员变量与局部变量的区别


1.书写位置

 成员:类中 方法外

 局部:方法中或方法上

2.内存中表现

 成员:堆内存

 局部:栈内存  

3.声明周期

 成员:随对象进入堆内存中创建 随对象销毁而销毁

 局部:随方法的调用入栈 随方法结束而销毁

4.作用域

 成员:整个类

 局部:方法中

5.初始值

 成员:默认初始值

 局部:默认没有初值 不给初值编译报错


4.引用数据类型时传参

//要什么类型 就给什么类型

public static void fun2(Person p) {

p.name="李四";

p.age = 24 ;

}

public static void main(String[] args) {

int a=100;

fun1(a);

System.out.println(a);

Person p1=new Person();

p1.name="王五";

p1.age = 28 ;

fun2(p1);

p1.sayHi();

}

5.匿名对象

匿名对象:没有名字的对象

一般在方法传参数的时候使用

只调用一下方法(不赋值的情况下)


public static void setNameAndAge(Person p,String name,int age) {

p.name=name;

p.age=age;

p.sayHi();

}

public static void main(String[] args) {

//创建两个person对象

//将重复代码 抽成一个方法

Person p1=new Person();

p1.name ="cdd";

p1.age=16;

p1.sayHi();

Person p2=new Person();

setNameAndAge(p2, "cddd", 8);


//使用匿名对象 当方法的参数

//好处:较少代码量

setNameAndAge(new Person(), "cc", 20);

//匿名对象也是对象 可以赋值属性 调用成员方法

new Person().name="c";

new Person().age=30;

new Person().sayHi();

//只调用方法可以使用匿名对象

//测试方法时可能会使用

new Person().fun();



6.封装

写方法就是封装的一种

相当于隐藏代码的实现和属性

需要开放访问方式(方法) 获取 修改

好处:提高代码的复用性 提高代码的安全性


关键字(权限修饰符)

private

被private修饰的属性只能本类中访问

        //java bean规范

//1.声明成员变量都要私有化

//2.给每一个成员变量提供set/get方法

//3.必须提供 无参的构造方法

private String phoneName;

private String color;

//对外开放访问方式 

//获取方法

public String getPhoneName() {

return phoneName;

}

//修改(设置)方法

    public void setPhoneName(String phonename) {

    //关键字this 代表本类的对象

    //this.成员变量  获取本类的成员变量

    //this.成员变量="哈哈";赋值

    //this.成员方法 调用本类的成员方法

    //谁调用了这个方法 谁就是this

this.phoneName=phonename;

}

    //规范

    //获取get+成员变量名(首字母大写)

    //修改set+成员变量名(首字母大写) 没有返回值

    public String getColor() {

return color;

}

    public void setColor(String color) {

this.color=color;

}


7.构造方法  

构造方法:对 对象的成员变量进行初始化

写法:

1.没有返回值类型(连void都不写)

2.构造方法名 要与 类名 完全一致

         public static void main(String[] args) {

//创建一个pen对象

//构造方法 是系统帮你调的

//只要你创建对象,系统会帮你调用构造方法

//构造方法执行一次

Pen p=new Pen();

p.sayHi();

//测试有参

//你传参数 系统就会找你有参的构造方法调用

Pen p1=new Pen("钢笔","绿色");

p1.sayHi();


类中的书写顺序

1.成员变量

2.无参构造方法

3.有参构造方法

4.成员方法

5.set/get方法



猜你喜欢

转载自blog.csdn.net/cdd233333/article/details/80246467