Person.java package com.google.eshop.javase; import java.util.Date; //电商 人 和银行项目的人//类是抽象的数据类型,我们需要的是具体的人变成对象//包含别的数据类型,不只是基本数据类型,还可以
package com.google.eshop.javase;
import java.util.Date;
//电商 人 和银行项目的人
//类是抽象的数据类型,我们需要的是具体的人变成对象
//包含别的数据类型,不只是基本数据类型,还可以是别的引用类型
//类具体化成对象
//main方法不是类必须的,只是一个程序
//类的设计是为了复用
public class Person {
//类中有两部分内容
//1.属性或叫域(静态)
//如果属性变为私有如何赋值和取值
String name;//隐藏细节 暴露接口
//选中name点击source进入Generate Getters and Setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
int gender;//0代表男,1代表女
int age;
String address;
Date birthday;
//2.方法(功能)只讲普通方法
public void sleep(String name,int age) {
System.out.println("名字为:"+name+"年龄为:"+age);
}
public String eat(String name,String address) {
return "名称为:"+name+"地址为:"+address;
}
}
TestPerson.java
package com.google.eshop.javase;
import java.util.Date;
public class TestPerson {
public static void main(String[] args) {
//将一个类进行实例化
//new这个关键字是用来分配地址空间
//java中只需要分配不需要释放(GC)
//面向对象程序的规定动作: 先new对象然后开始调用方法或属性
Person person=new Person();
//person.name ="任正非";
person.age =26;
person.address ="临潼区";
person.birthday=new Date();
System.out.println(person.birthday );
person.sleep("马云",45 );
Person person1=new Person();
person1.setName("刘强东");//name为私有直接导入?
person1.age =37;
person1.address ="未央区";
String message=person1.eat("章泽天", "高新区");
System.out.println(message);
String str="abc";
System.out.println(str.length ());
System.out.println(str.charAt(2));//字符串abc的第几个下标的值
Date data=new Date();
System.out.println(data);
}
}
Dog.java
package com.google.eshop.javase;
import java.util.Date;
//UML(统一建模语言)
public class Dog {
Person person=new Person();
String dname;
Date birthday;
String color;
public void bark(String dname,String colour) {
System.out.println("名字为:"+dname+"颜色为:"+colour);
}
}
TestDog.java
package com.google.eshop.javase;
import java.util.Date;
import java.util.Stack;
//选择安全 牺牲了性能 灵活性也降低了
//灵活性高安全性就低
public class TestDog {
public static void main(String[] args) {
Dog dog=new Dog();
Dog dog1=new Dog();
dog.color ="yellow";
dog.birthday =new Date();
dog.person=new Person();
System.out.println(dog.person.address="abbcc");
dog1.color="white";
dog1.dname="黑点";
dog.bark(dog1.dname, dog1.color);
String str="abcdefg";
System.out.println(str.length());
int position=str.indexOf("b", 2);//index首页
System.out.println(position);
Stack
stack=new Stack
();//first in last out stack.push(1); stack.push(2); stack.pop(); } }
TestAddressAndInterface.java
package com.google.eshop.javase;
import java.util.Date;
public class TestAddressAndInterface {
public static void main(String[] args) {
//我们需要分辨什么是引用(代表的是一个数据类型)什么是对象(地址空间)
//在java开发中拿到一个对象先判断是否为空在操作 有效的规避 空指针异常
//如果没有引用可以直接使用对象? 如果没有引用的对象叫匿名对象 匿名对象
//引用是存在栈(stack)中,对象是保存在堆中(堆中的对象的空间的释放不是保存在
//Person person=null;
Person person=new Person();
System.out.println(person.hashCode());
//new Person().address ="高新区";
//System.out.println(person.hashCode());
//person=new Person();
//System.out.println(person.hashCode());
System.out.println(new Person().age=12);
System.out.println(new Person().birthday);
if(null!=person) {
person.address ="高新区";
}
}
}
