package cn.tedu.oop;
public class TestGreateClass {
public static void main(String[] args) {
//4.通过new关键字创建对应类的对象
Phone p = new Phone();
//5.通过创建好的对象使用类中的功能
p.call();
p.message();
p.video();
//6.通过创建好的对象查看属性值
System.out.println(p.brand);
System.out.println(p.price);
System.out.println(p.color);
System.out.println(p.size);
//7.创建手机类的第二个对象
Phone p2 = new Phone();
System.out.println(p2);
//8.通过p2对象调用Phone类的三个功能
p2.video();
p2.message();
p2.call();
//9.给p2对象的属性赋值并查看
p2.brand = "华为";
p2.price = 8888.88;
p2.size = 5.6;
p2.color = "宝石蓝";
System.out.println("手机品牌是:"+p2.brand);
System.out.println("手机颜色是:"+p2.color);
System.out.println("手机价格是:"+p2.price+"元");
System.out.println("手机大小是"+p2.size+"寸");
}
}
//1.通过class关键字创建手机类--用来描述手机这一类事物
//类是一类事物的抽象,用来描述这一类事物的特征与行为
class Phone{
//特征(属性)--类的成员变量来描述--定义在类方法外的变量
String brand;//品牌
double price;//价格
double size; //尺寸
String color;//颜色
//3.定义手机的功能--类的方法来描述--修饰符 返回值类型 方法名(参数列表){方法体}
public void call(){
System.out.println("正在打电话~");
}
public void message(){
System.out.println("正在发短信~");
}
public void video(){
System.out.println("正在看片~");
}
}
package cn.tedu.oop;
//本类用于面向对象巩固
public class TestCat {
public static void main(String[] args) {
Cat m = new Cat();
m.jump();
m.miaoMiao();
System.out.println(m);
//6.创建小猫的对象2
Cat m2 = new Cat();
m2.jump();
m2.miaoMiao();
m.name = "黑炭";
m.age = 3;
m.hosts = "静静";
m2.name = "煤球";
m2.age = 2;
m2.hosts = "爱丽丝";
System.out.println("小猫的名字是:"+m.name);
System.out.println("小猫"+m.age+"岁啦~");
System.out.println("小猫的主人是:"+m.hosts);
System.out.println("小猫的名字是:"+m2.name);
System.out.println("小猫"+m2.age+"岁啦~");
System.out.println("小猫的主人是:"+m2.hosts);
}
}
//1.通过class关键描述小猫这一类事物
class Cat{
//2.属性
String name;
int age;
String hosts;
//3.功能
public void jump(){
System.out.println("小猫跳的老高了");
}
public void miaoMiao(){
System.out.println("小猫喵喵叫~~~~");
}
}
5.面向对象的第一大特性--封装
封装属性的思路:1.用private修饰资源
2.提供公共的get方法,用来获取值
3.提供巩固的set方法,用来设置值
封装方法的思路:1.用private修饰资源
2.用本类的公共方法调用这个被封装方法的功能
package cn.tedu.oop;
public class TestPrivate2 {
public static void main(String[] args) {
//4.创建学生类对象
Student s = new Student();
//5.通过对象操作学生类的属性与方法
System.out.println(s.name);
s.study();
//6.1通过对象修改属性的值,并打印查看
// s.subject = "java培优";
// System.out.println(s.subject);
s.name = "陈平安";
System.out.println(s.name);
// s.sno = 20210929;
// System.out.println(s.sno);
//6.4 调用自动生成的set与get方法
s.setSubject("CGB");
System.out.println(s.getSubject());
//7.3调用get与set方法操作被封装的属性
s.setSno(21090929);
int r = s.getSno();
System.out.println(s.getSno());
}
}
//1.使用class关键字描述学生这一类型
class Student{
//2.学生属性:学号,姓名,科目
//7.1使用private关键字封装属性
private int sno;
public int getSno() {
return sno;
}
public void setSno(int sno) {
this.sno = sno;
}
String name;
//6.2使用private修饰subject属性
private String subject;
//右键-Generate-getter and setter-再点那个锁-点ok
//7.2添加被封装属性的get和set方法
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
//3.学生功能:学习,吃饭,睡觉
public void study(){
System.out.println("别吵,学习呢~");
}
public void eat(){
System.out.println("干饭不积极,思想有问题~");
}
public void sleep(){
System.out.println("我一点也不想睡觉,我想学Java");
}
}
封装的必要性
package cn.tedu.oop;
//本类用于测试封装的必要性
public class TeatPrivate1 {
public static void main(String[] args) {
//3.创建对象修改属性值
User u = new User();
u.name = "葫芦娃";
System.out.println(u.name);
//u.money = 1000000;
//System.out.println(u.money);
//6.调用查看余额的方法
System.out.println(u.getMoney());
//7.调用设置余额的方法,设置余额为999999
u.setMoney(999999);
//设置完,通过获取money的方法再次查看余额值
System.out.println(u.getMoney());
}
}
//1.创建一个用户类
class User{
//2.定义用户类的属性
public String name; //姓名
//4.为了更安全的操作余额,修改money的修饰符为private
private double money=10000;//账户余额
//5.1提供公共的方法共外界调用,方法的功能:获取余额
public double getMoney(){
return money;
}
//5.2提供公共的方法共外界调用,方法的功能:修改余额
public void setMoney(double newMoney){
money = newMoney;//将调用方法时传入的值newMoney设置给成员变量money
}
}
面向对象巩固练习
package cn.tedu.oop;
public class TestCar {
public static void main(String[] args) {
//4.在公共类当中创建汽车类对象
Car c = new Car();
//5.设置创建好的对象的属性值
// c.brand = "BWM";
// c.color = "黑色";
// c.price = 300000;
// c.length = 3.2;
//6.查看设置好的属性
// System.out.println(c.brand);
// System.out.println(c.color);
// System.out.println(c.price);
// System.out.println(c.length);
//7.3操作set方法给所有属性赋值
c.setBrand("布加迪威龙");
c.setColor("暗夜黑");
c.setPrice(40000000);
c.setLength(3.3);
//7.4操作get方法查看属性的赋值是否成功
System.out.println(c.getBrand());
System.out.println(c.getColor());
System.out.println(c.getPrice());
System.out.println(c.getLength());
//8.通过创建好的对象调用汽车类的功能
c.start();
//c.stop();
}
}
//1.抽象汽车这一类事物的共同点,用class描述
class Car{
//2.属性--用成员变量来描述
//7.1封装所有属性
private String brand;//品牌
private String color;//颜色
private double price;//价格
private double length;//车长
//3.功能--用方法来描述
public void start(){
System.out.println("汽车启动了~");
//9.2在本类的公共方法里调用被封装的方法
stop();
}
//9.1用private封装汽车停止的方法
private void stop(){
System.out.println("汽车停止了~");
}
//7.2生成所有属性对应的get和set方法
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
}



