class Demo1_Student {
public staticvoidmain(String[] args){print(10);
Student s = new Student();//创建对象,并将对象的地址值赋值给sprint(s);}
public staticvoidprint(int x){//基本数据类型当作形式参数
System.out.println(x);}
public staticvoidprint(Student stu){//引用数据类型当作形式参数
stu.name ="张三";
stu.age =23;
stu.speak();}}
class Student {
String name;//姓名int age;//年龄
public voidspeak(){
System.out.println(name +"..."+ age);}}
class Demo2_Car {
public staticvoidmain(String[] args){/*Car c1 = new Car(); //创建有名字的对象
c1.run();
c1.run();
new Car().run(); //匿名对象调用方法
new Car().run(); *///匿名对象只适合对方法的一次调用,因为调用多次就会产生多个对象,不如用有名字的对象
new Car().color ="red";
new Car().num =8;
new Car().run();}}
class Car {
String color;//颜色int num;//轮胎数
public voidrun(){
System.out.println(color +"..."+ num);}}
class Demo3_Car {
public staticvoidmain(String[] args){//Car c1 = new Car();/*c1.color = "red";
c1.num = 8;
c1.run();*///method(c1);method(new Car());//Car c2 = new Car();//method(c2);method(new Car());//匿名对象可以当作参数传递}//抽取方法提高代码的复用性
public staticvoidmethod(Car cc){//Car cc = new Car();
cc.color ="red";
cc.num =8;
cc.run();}}
class Car {
String color;//颜色int num;//轮胎数
public voidrun(){
System.out.println(color +"..."+ num);}}
5、封装的概述
封装概述 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
封装好处
隐藏实现细节,提供公共的访问方式
提高了代码的复用性
提高安全性。
封装原则
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
6、private、this关键字的特点和案例演示
private关键字特点
a:是一个权限修饰符
b:可以修饰成员变量和成员方法
c:被其修饰的成员只能在本类中被访问
this关键字特点 代表当前对象的引用
案例演示 封装和private的应用:
A:把成员变量用private修饰
B:提供对应的getXxx()和setXxx()方法
private仅仅是封装的一种体现形式,不能说封装就是私有
class Demo1_This {
public staticvoidmain(String[] args){
Person p1 = new Person();
p1.setName("张三");
p1.setAge(23);
System.out.println(p1.getName()+"..."+ p1.getAge());
Person p2 = new Person();
p2.setName("李四");
p2.setAge(24);
System.out.println(p2.getName()+"..."+ p2.getAge());}}
class Person {
private String name;//姓名
private int age;//年龄
public voidsetAge(int age){//设置年龄if(age >0&& age <200){
this.age = age;//System.out.println(age);}else{
System.out.println("请回火星吧,地球不适合你");}}
public intgetAge(){//获取年龄return age;}
public voidsetName(String name){//设置姓名
this.name = name;//System.out.println(name);}
public String getName(){return name;}}