学习面向对象内容的三条主线
- 1.Java类及类的成员
- 2.面向对象的三大特征
- 3.其它关键字
4.1 面向过程与面向对象
- 面向过程(POP)与面向对象(OOP):二者都是一种思想,面向对象是相对于面向过程而言的。面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
4.2 Java语言的基本元素:类和对象
- 类(class)和对象(object)是面向对象的核心概念:类是对一类事物的描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也被称为实例(instance)。
- 面向对象程序设计的重点:类的设计
- 设计类,就是设计类的成员
package com.atguigu.java;
public class PersonTest {
public static void main(String[] args) {
Person p1 = new Person();
p1.name = "Tom";
p1.isMale = true;
System.out.println(p1.name);
p1.eat();
p1.sleep();
p1.talk("Chinese");
Person p2 = new Person();
System.out.println(p2.name);
System.out.println(p2.isMale);
Person p3 = p1;
System.out.println(p3.name);
p3.age = 10;
System.out.println(p1.age);
}
}
class Person{
String name;
int age;
boolean isMale;
public void eat() {
System.out.println("人可以吃饭");
}
public void sleep() {
System.out.println("人可以睡觉");
}
public void talk(String language) {
System.out.println("人可以说话,使用的是," + language);
}
}
package com.atguigu.java;
public class UserTest {
public static void main(String[] args) {
User u1 = new User();
System.out.println(u1.name);
System.out.println(u1.age);
System.out.println(u1.isMale);
}
}
class User{
String name;
int age;
boolean isMale;
public void talk(String language) {
System.out.println("我们使用"+language+"进行交流");
}
public void eat() {
String food = "烙饼";
System.out.println("北方人喜欢吃:"+food);
}
}
package com.atguigu.java;
public class CustomerTest {
public static void main(String[] args) {
Customer customer = new Customer();
}
}
class Customer{
String name;
int age;
boolean isMale;
public void eat() {
System.out.println("客户吃饭");
}
public void sleep(int hour) {
System.out.println("休息了" + hour + "个小时");
}
public String getName() {
return name;
}
public String getNation(String nation) {
String info = "我的国籍是:";
return info;
}
}
package com.atguigu.test;
public class Person {
String name;
int age;
int sex;
public void study() {
System.out.println("studying");
}
public void showAge() {
System.out.println("age:" + age);
}
public int addAge(int i) {
age += i;
return age;
}
}
package com.atguigu.test;
public class PersonTest {
public static void main(String[] args) {
Person p1 = new Person();
p1.name = "Tom";
p1.age = 18;
p1.sex = 1;
p1.study();
p1.showAge();
int newAge = p1.addAge(2);
System.out.println(newAge);
System.out.println(p1.age);
Person p2 = new Person();
p2.showAge();
p2.addAge(10);
p2.showAge();
p1.showAge();
}
}
package com.atguigu.test;
public class CircleTest {
public static void main(String[] args) {
Circle c1 = new Circle();
c1.radius = 2.1;
double area = c1.findArea();
System.out.println(area);
}
}
class Circle{
double radius;
public double findArea() {
double area = Math.PI * radius * radius;
return area;
}
}
package com.atguigu.test;
public class Exer3Test {
public static void main(String[] args) {
Exer3Test test = new Exer3Test();
int area = test.method(10, 20);
System.out.println("面积为:" + area);
}
public int method(int m, int n) {
for(int i=0; i<m; i++) {
for(int j=0; j<n; j++) {
System.out.print("* ");
}
System.out.println();
}
return m*n;
}
}
package com.atguigu.test;
public class StudentTest {
public static void main(String[] args) {
Student[] stus = new Student[20];
for(int i=0; i<stus.length;i++) {
stus[i] = new Student();
stus[i].number = i + 1;
stus[i].state = (int)(Math.random()*(6 - 1 + 1) + 1);
stus[i].score = (int)(Math.random()*(100 - 0 + 1) + 0);
}
for(int i=0; i<stus.length;i++) {
System.out.println(stus[i].info());
}
System.out.println("****************");
for(int i=0; i<stus.length;i++) {
if(stus[i].state == 3) {
System.out.println(stus[i].info());
}
}
System.out.println("****************");
for(int i=0; i<stus.length-1;i++) {
for(int j=0; j<stus.length-1-i;j++) {
if(stus[j].score > stus[j+1].score) {
Student temp = stus[j];
stus[j] = stus[j+1];
stus[j+1] = temp;
}
}
}
for(int i=0;i<stus.length;i++) {
System.out.println(stus[i].info());
}
}
}
class Student{
int number;
int state;
int score;
public String info() {
return "学号:" + number + ", 年纪:" + state + ",成绩:" + score;
}
}