面向对象学习(一)
一、面向对象思想介绍:
二、类和对象:
2.1类:
1.测试类:带main方法的类,主要是运行代码的;
2.实体类:是一类事物的抽象表示形式
3.组成部分:
<1>属性(成员变量):这一类事物有什么:
a.定义位置:类中方法外
b.作用范围:作用于当前类
c.定义格式:数据类型 变量名
d.都有默认值
<2>行为(成员方法):这一类事物都能干啥
只需要将方法所学中的static去掉。(因为静态方法无法直接访问实例变量和实例方法)
2.2对象:
1.概述:一类事物的具体体现;
2.使用:
a.导包:import 包名.类名
如果两个类在同一个包下,想要使用对方的成员不需要导包
如果两个类不在同一个包下,想要使用对方的成员需要导包。
特殊包:java.lang → 使用lang包下的类不需要导包(eg:String)
b.创建对象:想要使用哪个类中的成员,就new哪个类的对象
类名 对象名 = new 类名()
c.调用成员(成员变量,成员方法)
对象名.成员变量 = 值
对象名.方法名() → 无参无返回值
对象名.方法名(实参) → 有参无返回值
数据类型 变量名 = 对象名.方法名() → 无参有返回值
数据类型 变量名 = 对象名.方法名(实参) → 有参有返回值
三、练习:
1.用代码描述一个手机类,在测试类中为手机类的各类属性赋值,并且调用手机类中的功能。
public class Phone {String brand;double size;public void play(){System.out.println("刷抖音");}public void picture(int times) {if (times <= 7) {System.out.println("看照片");} else {System.out.println("拍照片");}}}
public class text {public static void main(String[] args) {Phone phone = new Phone();phone.brand = "samsung";phone.size = 6.1;phone.play();phone.picture(8);}
}
四、匿名对象:
1.int i = 10
a.int :数据类型;
b.i:变量名;
c.等号右边的10:真正的数据
2.Person p = new Person()
a.等号左边的Person:对象的类型,类似int;
b.p:对象名
c.等号右边的new Person():真正的数据,是一个Person对象,将这个对象真正创建出来了
2.匿名对象:
2.1.所谓匿名对象:其实就是没有等号左边的部分,只有右边的部分(对象)
2.2.使用:
new 对象().成员
2.3.注意:
a.如果只想单纯调用一个方法,让方法执行,我们可以考虑匿名对象
b.如果涉及到赋值,千万不要用匿名对象。(涉及内存空间问题)