面向过程:一种编程的思想,强调的过程,凡是亲力亲为(缺点繁琐);
面向对象(oop):一种编程的思想,强调的结果(不在意过程);
类:抽象的,不是具体的东西,类似于类型,我们将其理解成一类事物的模板
面向对象的三大特征----面试题
- 封装: 把相关的数据封装成一个“类”组件
- 继承: 是子类自动共享父类属性和方法,这是类之间的一种关系
- 多态: 增强软件的灵活性和重用性
对象:是具体的,是根据类具体创造的事物
数据结构:
1.数组
2.队列;先进先出FIFO(first in first out)
3,栈:后进先出LIFO(last in first out)
1、在栈内存中开辟一块空间,存放应用类型变量p,并把p压入栈底
2、在堆内存中开辟一块空间,存放Phone对象
3、完成对象的初始化,并赋予默认值
4、给初始化完毕的对象赋予唯一的地址值
5、把地址值交给引用类型变量p来保存
public class TestCat {
public static void main(String[] args) {
cat c = new cat();
c.jump();
c.miaomiao();
c.eat();
c.age=3;
c.color="黑白想间";
c.hosts="图图";
c.name="小白";
System.out.println(c.color+"颜色de"+c.name+c.age+"岁"+"主人是"+c.hosts);
cat c1=new cat();
c1.jump();
c1.eat();
c1.miaomiao();
}
}
class cat{
int age;
String color;
String name;
String hosts;
public void jump() {
System.out.println("小猫跳的很高");
}
public void miaomiao() {
System.out.println("喵喵叫");
}
public void eat() {
System.out.println("爱吃鱼");
}
}
注意:属性,功能,赋值//(等于同一类型的商品,功能配置相同,不同人使用的属性方式不一样)
****同包下面不能出现相同的类
顺序,先创建(商品)名称,----创建属性(与class平级)----在创建功能(可以在main方法中调用)----在进行赋值
补:调用方法
注释:satic在main方法进行,main是静态,在静态下,方法也是需要静态
封装的思路
1,用private修饰资源
2,提供公共的get方法---来获取值
3,提供巩固的set的方法--用来设置值
封装方法的思路:
1,用private来修饰资源
2.用本类的公共方法调用这个被封装方法的功能
eg:
public class TestCar {
public static void main(String[] args) {
Car c=new Car();
//c.brand="华为";
// c.color="黄蓝绿";
c.setBrand("bwm");
c.setColor("红黄蓝");
System.out.println(c.getBrand());
System.out.println(c.getColor());
c.setPrice(111200);
c.setLength(5.5);
System.out.println(c.getPrice());
System.out.println(c.getLength());
System.out.println("品牌:"+c.getBrand()+"颜色是"+c.getColor()+"价格"+c.getPrice()+"元"+"车长"+c.getLength()+"m");
c.stop();
c.start();
}
}
//1.抽象汽车这一类事物的共同点,用Class描叙
class Car{
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
//2.属性--用成员变量的描述
private String brand;//品牌
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
private String color;//颜色
//3.功能--用发法来描叙
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
private double price;//价位
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
private double length;//车长.同样可以进行赋值
public void start() {
System.out.println("汽车启动了");
}
public void stop() {
System.out.println("汽车停止了");
}
}
注:
拓展:匿名对象,一次只能调用一个方法,只能用一次(new car().stop)
package cn.tedu.oop;
import com.sun.media.jfxmedia.events.PlayerEvent;
import sun.font.EAttribute;
import javax.net.ssl.HostnameVerifier;
public class TestDog {
public static void main(String[] args) {
Dog d=new Dog();
d.setAge(1);
d.setHost("图图");
d.setKind("斗牛");
d.setName("小白");
d.setPrice(10000);
System.out.println(d.getAge());
System.out.println(d.getHost());
System.out.println(d.getKind());
System.out.println(d.getName());
System.out.println(d.getPrice());
Dog d2 =new Dog();
d2.setName("哮天犬");
d2.setAge(5);
d2.setKind("猎犬");
d2.setHost("二郎神");
d2.setPrice(999.99);
System.out.println(d2.getName());
System.out.println(d2.getAge());
System.out.println(d2.getKind());
System.out.println(d2.getHost());
System.out.println(d2.getPrice());
Dog d1= new Dog();
d1.setName("罗小黑");
d1.setAge(5);
d1.setKind("神奇犬");
d1.setHost("大自然");
d1.setPrice(10000);
System.out.println(d1.getName());
System.out.println(d1.getAge());
System.out.println(d1.getKind());
System.out.println(d1.getHost());
System.out.println(d1.getPrice());
d.run(" 罗小黑 ");
d.eat(23);
d.sleep(4.4);
d.play(d.getHost());
d.bark("开心");
System.out.println(d.play(d.getHost()));//可以结算返回值
System.out.println(d.eat(100));
System.out.println(d.bark("ka"));
}
}
class Dog{
private String bark;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
private String name;
private int age;
private String kind;
private String host;
private double price;
public void run(String name) {
System.out.println("小狗"+name+"跑的老快了");
}
public int eat(int n) {
System.out.println("小狗今晚要吃"+n+"跟肉骨头");
return 0;
}
public void sleep(double num) {
System.out. println("小狗睡了"+num+"个小时");
return ;
}
public String play(String host) {
System.out.println("小狗与主人"+host+"玩的开心");
return "飞盘";
//bark();//遇到return时已经结束了本方法,return后不可以直接写代码
}
public String bark (String play) {//*Strin与int的类型
System.out.println("玩"+play+"的时候才");
return "喜欢 ";
}
}